[python] Python의 생성기 함수에서 한 번에 하나의 값을 얻는 방법은 무엇입니까?

매우 기본적인 질문-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


답변

이것이 올바른 방법입니다.

를 사용할 수도 있습니다 next(gen).

http://docs.python.org/library/functions.html#next


답변

파이썬 3 이상에서 생성기 객체와 관련된 값을 얻으려면 next(<your generator object>). next ()에 대한 후속 호출은 대기열에 연속적인 객체 값을 생성합니다.


답변

파이썬 3에서는 .이 gen.next()없지만 next(gen). 당신이 저에게 물어 보면 약간 기이하지만 그것이 방법입니다.


답변