我知道一定是我漏看了什么简单的东西。
如果我有这样一个生成器表达式:
>>> 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
我错过的是什么?
return wrapper
,我猜这是由yield
语句隐含/自动创建的 :P - Jeff Tratner