python生成器

时间:2021-12-26 07:02:50

eg1:

>>> (i*i for i in range(5))
<generator object <genexpr> at 0x16b8fa0>
>>> gen=(i*i for i in range(5))
>>> gen.next()
0
>>> gen.next()
1
>>> gen.next()
4
>>> gen.next()
9
>>> gen.next()
16
>>> gen.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration

定义一个生成器:

python生成器

python生成器

执行生成器里面的代码:

  生成器next() 方法遍历,

  用for循环遍历。

执行到yield不退出,但是依然可以返回值