#大前提:生成器就是一種自定義的迭代器,本質就是迭代器
# 但凡函數內包含yield關鍵字,調用函數不會執行函數體代碼,會獲得一個返回值,該返回值就是生成器對象python
def func(): print('first') yield 1 print('second') yield 2 print('third') yield 3 print('fourth') g=func() print(g) print(g.__iter__().__iter__() is g) res1=next(g) ----------------------------------------------------------------------------------------- <generator object func at 0x00000245E1BDBDB0> True first
#會觸發函數的執行,直到碰到一個yield停下來,而且將yield後的值看成本次next的結果返回ide