J'ai un générateur qui génère une série, par exemple:Est-ce que generator.next() est visible dans 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 Je suis capable de faire les appels suivants:
g = triangleNums() # get the generator
g.next() # get next val
cependant dans la version 3.0 si j'exécute les mêmes deux lignes du code que je reçois l'erreur suivante:
AttributeError: 'generator' object has no attribute 'next'
mais la syntaxe boucle de iterator fonctionne dans la version 3.0
Je n'ai encore rien trouvé qui explique cette différence de comportement pour 3.0.
une idée de pourquoi python 2 esquivé la convention dunder pour ces méthodes en premier lieu? –
C'est probablement juste un oubli. –