저는 파이썬 생성기의 미묘한 세부 사항을 이해하려고합니다.동일한 생성기에서 값을 보내고받는 것
이def injector():
while True:
try:
print 'a'
v = yield
print 'b', v
yield v
print 'c'
except GeneratorExit:
print 'exit'
break
g = injector()
print 'send none'
g.send(None)
print 'send 2'
g.send(2)
print 'receiving'
v = g.next()
print 'received', v
g.close()
이 프로그램에 대한 예상 출력은 다음과 같습니다 :
send none
a
send 2
b 2
receiving
received 2
c
a
exit
테스트 프로그램 중 하나는 내가 모두 같은 발전기로/값을 전송하고 선택적으로 읽을 수 있다면 다음과 같은 것을 볼 쓴 내가 얻는 결과는 다음과 같습니다.
이제 분명히 위의 결과물을 얻을 수 있습니까? 발전기 작동 방식에 대해 내가 이해하지 못했던 것은 무엇입니까?
주'그 다음에()' 'send (None)'과 정확히 같다. http://www.python.org/dev/peps/pep-0342/ – ecatmur