非常基本的问题--如何在Python中从生成器中获取一个值?
到目前为止,我发现我可以通过编写gen.next()
获得一个。我只想确认这是不是正确的方式?
发布于 2010-03-11 03:13:03
是的,或者2.6+中的next(gen)
。
发布于 2010-03-11 06:54:13
在Python <= 2.5中,使用gen.next()
。这将适用于所有Python 2.x版本,但不适用于Python 3.x
在Python >= 2.6中,使用next(gen)
。这是一个内置的函数,而且更清晰。它也可以在Python3中工作。
这两个函数最终都调用了一个特殊命名的函数next()
,它可以通过子类化来覆盖。然而,在Python3中,该函数已被重命名为__next__()
,以与其他特殊函数保持一致。
发布于 2016-09-17 09:00:47
使用(适用于python 3)
next(generator)
下面是一个例子
def fun(x):
n = 0
while n < x:
yield n
n += 1
z = fun(10)
next(z)
next(z)
应打印
0
1
https://stackoverflow.com/questions/2419770
复制相似问题