python中yield的用法 簡單明瞭!

2022-06-01 21:42:11 字數 735 閱讀 5610

我也要吐槽一下,網上搜了不少yield的用法,看得一頭霧水,直到我看到這篇文章豁然開朗!

我也仿照博文寫了下例子:

def demo():

print("開始執行...")

while 1:

res = yield '這是返回值'

print("res:",res)

d1 = demo()

print(d1)

print(next(d1))

print("*"*20)

print(next(d1))

執行結果如下:

開始執行...

這是返回值

********************

res: none

這是返回值

**解釋,個人理解,說得不對希望能夠點出:

d1 = demo();生成乙個物件,不會輸出任何內容

print(d1); 這裡不輸入任何內容,因為程式第一次遇到yield就暫停了,即使yield前面有輸出語句,一樣給輸出

print(next(d1)); 程式會接著yield繼續執行,第二次遇到yield,return「這是返回值」,加起來就會會輸出開始執行...

這是返回值

print(next(d1));再次執行next(d1),相當於第三遇到yield,因為上一步相當於被return,res並沒有賦值,所以為none,繼續執行while,第四次遇到yield,輸出「這是返回值」

Python中的yield用法

在python中,我們將帶有 yield 的函式稱之為 generator 生成器 generator可以一邊迴圈一邊計算,是可迭代物件,也就是說可以使用for迴圈來迭代出generator的各個值。一般為了說明generator,都會使用斐波那契數列來舉例,這裡也不例外 如結果所示,呼叫 fab ...

Python中的yield用法

yield關鍵字用來定義生成器 generator 其具體功能是可以當return使用,從函式裡返回乙個值,不同之處是用yield返回之後,可以讓函式從上回yield返回的地點繼續執行。也就是說,yield返回函式,交給呼叫者乙個返回值,然後再 瞬移 回去,讓函式繼續執行,直到嚇一條yield語句再...

python中 yield的用法

接下來是正題 首先,如果你還沒有對yield有個初步分認識,那麼你先把yield看做 return 這個是直觀的,它首先是個return,普通的return是什麼意思,就是在程式中返回某個值,返回之後程式就不再往下執行了。看做return之後再把它看做乙個是生成器 generator 的一部分 帶y...