我可以將成員變量/方法添加到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