표현으로 수율을 이해하려고하고 나는 그들이 어떻게 작동하는지 이해하는 것이 완전히 확실하지 않다 (some reference material) : generator.send
이처럼내가 발전기, 발전기 표정으로 주위를 연주 해요
>>> a = (x for x in range(10))
>>> next(a)
0
>>> next(a)
1
>>> a.send(-1)
2
>>> next(a)
3
그래서 그것은 본다 무시. 즉 수있는 의미 (내 생각) 전송 된 정보를 잡을 수있는 명시 적 yield
표현이 없기 때문에 ... 그러나
,
>>> a = ((yield x) for x in range(10))
>>> next(a)
0
>>> print next(a)
None
>>> print next(a)
1
>>> print next(a)
None
>>> a.send(-1) #this send is ignored, Why? ... there's a yield to catch it...
2
>>> print next(a)
None
>>> print next(a)
3
>>> a.send(-1) #this send isn't ignored
-1
내가이 밖에 꽤 멀리 이해하고, (현재) I하게
나는이 다양한 생성기 메서드가 어떻게 작동하는지 (그리고 생성기식이 일반적으로 어떻게 작동하는지) 알아 내려고 노력하고있다. 두 번째 예제가 합리적인 값을주고 None
을 번갈아 표시하는 이유는 무엇입니까? 또한, 왜 내 generator.send
중 하나가 무시되었는데 다른 하나는 무시되었다고 설명 할 수 있습니까?
이 링크가 도움이되는지 확인하십시오 ... http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained –