에서 이 질문에 , 파이썬 생성기를 사용하여 끝없는 순서를 가지고있다. 그러나 동일한 코드는 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__()
메소드 를 찾으려고 시도 함)를 호출하는 것이 좋습니다.