#大前提:生成器就是一种自定义的迭代器,本质就是迭代器
# 但凡函数内包含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