Python中yield關鍵字的用法及執行邏輯

2022-07-24 12:09:13 字數 935 閱讀 4434

我們以這樣一段**作為例子

def fun():

print("進入fun函式了")

x = yield 100

print("在fun函式中的x:",x)

yield "謝謝,你也快樂"

f = fun()

result = next(f)

print(result)

result2 = f.send("元宵節快樂")

print("程式外面的result2:",result2)

執行結果

進入fun函式了

100在fun函式中的x :元宵節快樂

程式外面的result2 :謝謝,你也快樂

解釋

f =fun()                          呼叫fun函式,控制台輸出 「進入fun函式了」,執行到yield時等待next呼叫

result =next(f)          yield繼續執行,將100返回給result,函式掛起,此時x並沒有被賦值

print

(result)            控制台列印100

result2 = f.send("

元宵節快樂

")   end方法將「元宵節快樂」傳送至函式掛起之後的時刻,此時x被賦值為「元宵節快樂」,函式繼續執行,在控制台列印「在fun函式中的x :元宵節快樂」 ,函式繼續執行,再次遇到yeild關鍵字,並將「謝謝,你也快樂」返回到send之後的時刻,此時result2被賦值為「謝謝,你也快樂」,函式執行完畢

print("

程式外面的result2:

",result2) 控制台列印「程式外面的result2 :謝謝,你也快樂」

講的不對的地方歡迎來郵**   [email protected]

python中yield關鍵字

mylist是乙個可迭代的物件。當你使用乙個列表生成式來建立乙個列表的時候,就建立了乙個可迭代的物件 mylist x x for x in range 3 for i in mylist print i 01 4在這裡,所有的值都存在記憶體當中,所以並不適合大量資料 def creategener...

Python的yield關鍵字

忽然得知python有個叫yield的關鍵字,好奇之下去查了查,花了點時間基本弄明白了,故寫在此備忘,順便充充字數。yield關鍵字用來定義生成器 generator 其具體功能是可以當return使用,從函式裡返回乙個值,不同之處是用yield返回之後,可以讓函式從上回yield返回的地點繼續執行...

python 理解關鍵字 yield

為了方便追 更新擼了乙個基於scrapy的爬蟲。在實現過程中使用到了yield,網上對其的文字描述都很難讓人理解。通過debug 才了解呼叫順序,進而理解了它使用方法。我們可以用乙個等式來形容其作用 yeild 函式 return 生成器 generator 用同步方式寫非同步 生成器 可迭代的函式...