python中yield,next(),send(msg)的理解


 yield:yield可以當做一個暫停/開始信號,有yield的函數是一個generator,代碼運行到yield時暫停。yield x 整體就是一個表達式。

next(): 遇到表達式時暫停,返回yield表達式的中的參數 x 。此時擱置yield表達式,再次調用next()時,跳過yield,執行后面的代碼。

send(msg):與next()相似,但send(msg)會將當前被擱置的yield表達式變為 msg,再執行后面的代碼,直到遇到下一個yield時暫停並返回下一個表達式的參數。 所以第一次調用send時,由於當前沒有yield,需要傳入參數None避免報錯。即send(None),這也說明了send(None)和next()是等效的。

參考資料:https://www.cnblogs.com/coderzh/articles/1202040.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM