Является ли generator.next () видимым в python 3.0?
У меня есть генератор, который генерирует серию, например:
def triangleNums():
'''generate series of triangle numbers'''
tn = 0
counter = 1
while(True):
tn = tn + counter
yield tn
counter = counter + 1
в Python 2.6 я могу сделать следующие вызовы:
g = triangleNums() # get the generator
g.next() # get next val
однако в 3.0, если я выполняю те же две строки кода, я получаю следующую ошибку:
AttributeError: 'generator' object has no attribute 'next'
но синтаксис итератора цикла работает в 3.0
for n in triangleNums():
if not exitCond:
doSomething...
Я пока не смог найти ничего, что объясняло бы эту разницу в поведении для 3.0.