PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Python
[问题] yield跟return
楼主:
shiyeh
(shiyeh)
2022-03-15 22:58:00
最近看fastapi常常看到类似这段code
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
想请问为什么db 是yield出来,而不是用return就好啊?
跟使用情境有关吗?
之前也有在for循环之类的 看过这个用法
用yield的用意是什么呢?
作者:
lycantrope
(阿宽)
2022-03-15 23:15:00
这边用return的话db.close()会在return 之前执行yield只是暂时跳出function回传,之后还会跳回来执行db.close()
作者:
TuCH
(谬客)
2022-03-16 09:02:00
我也很好奇 fastapi 什么时候会进finally: db.close
作者:
lycantrope
(阿宽)
2022-03-16 09:56:00
get_db StopIteration 或是被del 都会执行finally有点类似另类的context manager 觉得酷可以学起来w
作者:
poototo
(poototo)
2022-03-16 10:48:00
with的一种语法糖
作者:
TuCH
(谬客)
2022-03-16 12:51:00
我觉得fastapi 的 Depends 也是蛮神奇的 也是不知道怎么进
作者:
hanfadacai
(没有绰啦)
2022-03-17 17:48:00
这个之前有用到 但后来用忘记用法 只知道跟return很像
作者:
wuwt4y
(Poky)
2022-03-18 22:21:00
https://docs.python.org/3/library/contextlib.html
作者:
single4565
(leekdumpling韭菜水饺)
2022-03-19 15:16:00
https://youtu.be/x6MNOSRY5EM
可能帮助
作者:
mantour
(朱子)
2022-03-23 00:47:00
try: ... finally: ... 才是比较基本的写法吧? with 应该是后来才加进去的语法(PEP 343)
继续阅读
[问题] matplotlib 下怎么使用times new roman?
peter308
[问题] xlwings指定格子如何使用循环?
bearching
mac os连结共享资料夹
sukima
[问题] windows下关于更新python的问题
pshuang
[问题] CSV reader
yoyo50420
Re: [问题] 字串.format 花括号数量问题
DaOppaiLoli
[问题] 字串.format 花括号数量问题
newbrain
Re: [问题] QTdesigner输出之后的问题
frogofmagic
[问题] 怎么解决runtime error(RE)
andylinag
[问题] 使用requests下载期交所CSV档案
kurapica1106
Links
booklink
Contact Us: admin [ a t ] ucptt.com