Tengo un generador que genera una serie, por ejemplo:¿Está el generador.next() visible en python 3.0?
def triangleNums():
'''generate series of triangle numbers'''
tn = 0
counter = 1
while(True):
tn = tn + counter
yield tn
counter = counter + 1
en Python 2.6 Soy capaz de realizar las siguientes llamadas: sin embargo
g = triangleNums() # get the generator
g.next() # get next val
en 3.0 si ejecuto las mismas dos líneas de código que estoy consiguiendo el error siguiente:
AttributeError: 'generator' object has no attribute 'next'
pero, la sintaxis iterador de bucle funciona en 3.0
for n in triangleNums():
if not exitCond:
doSomething...
No he podido encontrar nada aún que explique esta diferencia de comportamiento para 3.0.
¿Alguna idea de por qué python 2 evitó la convención dunder para estos métodos en primer lugar? –
Eso es solo un descuido. –