[python] 파이썬 3의 수율 생성기에는 next () 함수가 없습니다.

에서 이 질문에 , 파이썬 생성기를 사용하여 끝없는 순서를 가지고있다. 그러나 동일한 코드는 next()기능 이없는 것처럼 보이기 때문에 Python 3에서 작동하지 않습니다 . next함수에 해당하는 것은 무엇입니까 ?

def updown(n):
    while True:
        for i in range(n):
            yield i
        for i in range(n - 2, 0, -1):
            yield i

uptofive = updown(6)
for i in range(20):
    print(uptofive.next())



답변

파이썬 3에서 사용하는 next(uptofive)대신 uptofive.next().

내장 next()함수는 Python 2.6 이상에서도 작동합니다.


답변

Python 3에서는 구문의 일관성을 높이기 위해 next()메서드 이름이 __next__(). 당신은 그것을 사용할 수 있습니다. 이것은 PEP 3114에 설명되어 있습니다.

Greg의 솔루션을 따르고 내장 next()함수 (그런 다음 객체의 __next__()메소드 를 찾으려고 시도 함)를 호출하는 것이 좋습니다.


답변