J'ai un générateur qui génère une série, par exemple:
def triangle_nums():
'''Generates a series of triangle numbers'''
tn = 0
counter = 1
while True:
tn += counter
yield tn
counter += + 1
En Python 2, je peux faire les appels suivants:
g = triangle_nums() # get the generator
g.next() # get the next value
cependant en Python 3 si j'exécute les deux mêmes lignes de code j'obtiens l'erreur suivante:
AttributeError: 'generator' object has no attribute 'next'
mais, la syntaxe de l'itérateur de boucle fonctionne en Python 3
for n in triangle_nums():
if not exit_cond:
do_something()...
Je n'ai encore rien trouvé qui explique cette différence de comportement pour Python 3.