매우 기본적인 질문-Python의 생성기에서 하나의 값을 얻는 방법은 무엇입니까?
지금까지 작성하여 얻을 수 있음을 발견했습니다 gen.next()
. 이것이 올바른 방법인지 확인하고 싶습니까?
답변
예, 또는 next(gen)
2.6 이상입니다.
답변
Python <= 2.5에서는 gen.next()
. 이것은 모든 Python 2.x 버전에서 작동하지만 Python 3.x에서는 작동하지 않습니다.
Python> = 2.6에서는 next(gen)
. 이것은 내장 기능이며 더 명확합니다. Python 3에서도 작동합니다.
이 두 가지 모두 next()
하위 클래스로 재정의 할 수 있는 특수 이름의 함수를 호출합니다 . 그러나 Python 3에서이 함수는 __next__()
다른 특수 함수와 일치하도록 로 이름이 변경되었습니다 .
답변
사용 (파이썬 3 용)
next(generator)
다음은 예입니다.
def fun(x):
n = 0
while n < x:
yield n
n += 1
z = fun(10)
next(z)
next(z)
인쇄해야
0
1
답변
답변
파이썬 3 이상에서 생성기 객체와 관련된 값을 얻으려면 next(<your generator object>)
. next ()에 대한 후속 호출은 대기열에 연속적인 객체 값을 생성합니다.
답변
파이썬 3에서는 .이 gen.next()
없지만 next(gen)
. 당신이 저에게 물어 보면 약간 기이하지만 그것이 방법입니다.