나는 간단한 것을 놓치고 있어야한다는 것을 알고 있지만, 나는 그것을 보지 않고있다.생성기 수식 v 수율 : 왜 'next()'가 작동하지 않습니까?
이 같은 발전기 표현이있는 경우 :
>>> serializer=(sn for sn in xrange(0,sys.maxint))
내가 쉽게 생성 할 수 있습니다,이 같은 개별 정수 :
>>> serializer.next()
0
>>> serializer.next()
1
>>> serializer.next()
2
이 같은 발전기 작성하는 경우 :
>>> def ser():
... for sn in xrange(0,100000):
... yield sn
을
부에노 :
>>> ser().next()
0
>>> ser().next()
0
>>> ser().next()
0
??? 나는 무엇을 놓치고 있는가 ???
Thx! 나는 그것이 단순해야만한다는 것을 알았다. – dawg
문제 없음. 이 작업을하는 다른 주요 유형의 함수 (데코레이터)에는 명시 적으로 'return wrapper'가 포함되어 있기 때문에 명확하지 않습니다.'yield' 문에 의해 암시 적이거나 마술처럼 생성됩니다. P –