2010-03-10 60 views

回答

82

是,或2.6+ next(gen)

39

在Python < = 2.5中,使用gen.next()。這適用於所有Python 2.x版本,但不適用於Python 3.x

在Python> = 2.6中,使用next(gen)。這是一個內置的功能,並且更清晰。它也將在Python 3中工作。

這兩個都最終會調用一個特殊命名的函數next(),它可以通過子類重寫。然而,在Python 3中,該函數已被重命名爲__next__(),以與其他特殊功能保持一致。

1

在python 3中你沒有gen.next(),但你仍然可以使用next(gen)。 如果你問我,有點奇怪,但事實就是這樣。

2

使用(對於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 
相關問題