十、生成器

#大前提:生成器就是一種自定義的迭代器,本質就是迭代器

# 但凡函數內包含yield關鍵字,調用函數不會執行函數體代碼,會得到一個返回值,該返回值就是生成器對象

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的結果返回

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章