Python怎麼理解生成器和yield?

2021-09-26 04:34:46 字數 668 閱讀 7379

生成器:一種特殊的迭代器,與迭代器的主要區別在於在生成器函式內部可以接收值。

def gen():

sum = 0

r = yield sum

sum = sum + r

print('sum的值為:%s' % sum)

r = yield sum

sum = sum + r

print('sum的值為:%s' % sum)

r = yield sum

# 建立生成器

c = gen()

print(type(c)) # 生成器

# 啟動生成器

a = c.send(none)

print('生成器返回的值為:%s' % a)

a = c.send(1)

print('生成器返回的值為:%s' % a)

a = c.send(1)

print('生成器返回的值為:%s' % a)

輸出結果:

理解yield關鍵在於理解他的2個作用,1是終止,執行至yield時會終止程式。2是接收值,下次執行時會接收值並進行後續運算。

生成器通過send()方法進行傳值+迭代

理解 Python 生成器

什麼時候呼叫,什麼時候計算並返回值 生成器僅僅儲存了一套生成數值的演算法,並且沒有讓這個演算法現在就開始執行,而是我什麼時候調它,它什麼時候開始計算乙個新的值,並給你返回。在python中,一邊迴圈一邊計算的機制,稱為生成器 generator。列表耗記憶體 列表所有資料都在記憶體中,如果有海量資料...

python 生成器作用 Python生成器

生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...

python生成器好處 Python生成器筆記

python中三大器有迭代器,生成器,裝飾器,本文主要講述生成器。主要從生成器的概念,本質,以及yield關鍵字的使用執行過程。本質 生成器是一類特殊的迭代器,使用了yield關鍵字的函式不再是函式,而是生成器。使用了yield的函式就是生成器 1.yield關鍵字有兩點作用 1.1 yield語句...