당신은 때마다 발전기를 재생성하므로 매번 처음부터 시작됩니다.
되면 발전기를 만들기 :
gen = mygen()
gen.next()
gen.next()
gen.next()
생성기 기능은 새로운 반복자에게 당신이 그들을 호출 할 때마다 생산; 그런 식으로 여러 개의 독립적 인 복사본을 생성 할 수 있습니다. 당신은 아마 대신 직접 generator.next()
를 호출 next()
function를 사용하려면
>>> def mygen():
... i = 0
... j = 3
... for k in range(i, j):
... yield k
...
>>> gen1 = mygen()
>>> gen2 = mygen()
>>> gen1.next()
0
>>> gen1.next()
1
>>> gen2.next()
0
>>> gen2.next()
1
>>> gen1.next()
2
>>> gen1.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
참고 :
next(gen)
generator.next()
는 각각의 독립적 인 반복자는 다른 별개을 통해 강화 될 수 함수의 호출입니다 후크로 간주됩니다 (Python 3은 generator.__next__()
으로 이름이 변경되고 next()
함수는 버전 간 호환 방식으로 호출하는 공식 API입니다)