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