我可以将成员变量/方法添加到Python生成器吗?将成员变量/方法添加到Python生成器?
我想大意如下的东西,让我可以 “窥视” 的成员变量j:
def foo():
for i in range(10):
self.j = 10 - i
yield i
gen = foo()
for k in gen:
print gen.j
print k
是的,我知道我可以每次都返回i和j。但我不想这样做。我想窥视发电机内的一个本地。
这似乎你真的把发电机模式拉得太远了。为什么不使用更适合您的用例的方法,而不是试图将您的问题纳入窄发生器概念? – nikow 2009-12-21 20:18:18
+1对于一个好问题,对于访问在遍历生成器的过程中可能发生变化的变量有很多好处。 – 2009-12-21 22:52:33
以下讨论,我在这里博客了解我的解决方案:http://blog.metaoptimize.com/2009/12/22/why-cant-you-pickle-generators-in-python-workaround-pattern-for-saving-training -state/ – 2009-12-22 08:58:13