Czy mogę dodać zmienną składową/metodę do generatora Pythona?Dodaj zmienną składową/metodę do generatora Pythona?
chcę coś wzdłuż następujących linii, tak że mogę "peek" w zmiennej członkiem 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
Tak, wiem, że mogę wrócić I i J każdym razem. Ale nie chcę tego robić. Chcę zajrzeć do lokalnego w generatorze.
Wydaje że naprawdę rozciągasz wzór generatora zbyt daleko. Dlaczego nie zastosować podejścia, które lepiej pasuje do twojego przypadku użycia, zamiast próbować dopasować swój problem do wąskiej koncepcji generatora? – nikow
+1 za dobre pytanie, dla mnie istnieje wiele zalet dostępu do zmiennych, które mogą ulec zmianie w trakcie iteracji przez generator. –
Po dyskusji, blogowałem o moim rozwiązaniu tutaj: http://blog.metaoptimize.com/2009/12/22/why-cant-you-pickle-generators-in-python-workaround-pattern-for-saving-training -state/ –