Kann ich einem Python-Generator eine Elementvariable/-methode hinzufügen?Fügen Sie einem Python-Generator eine Elementvariable/Methode hinzu?
Ich möchte etwas in den folgenden Zeilen, so dass ich kann "Peek" an Membervariable 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
Ja, ich weiß, dass ich i und j jedes Mal zurückgeben kann. Aber ich will das nicht tun. Ich möchte einen lokalen Generator sehen.
Es scheint, dass du das Generatormuster wirklich zu weit dehnst. Warum nicht einen Ansatz verwenden, der besser zu Ihrem Anwendungsfall passt, anstatt zu versuchen, Ihr Problem in das enge Generatorkonzept zu integrieren? – nikow
+1 für eine gute Frage, für mich gibt es eine Menge Vorteile beim Zugriff auf Variablen, die sich im Laufe der Iteration durch den Generator ändern können. –
Nach Diskussion, Blogging ich über meine Lösung hier: http://blog.metaoptimize.com/2009/12/22/why-cant-you-pickle-generators-in-python-workaround-pattern-for-saving-training -state/ –