1. 程式人生 > >python中yield,next(),send(msg)的理解

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