¿Puedo agregar una variable/método miembro a un generador de Python?¿Agregar una variable/método miembro a un generador de Python?
quiero algo a lo largo de las siguientes líneas, de manera que pueda "vistazo" a la variable miembro 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
Sí, sé que I y J puedo volver cada vez. Pero no quiero hacer eso. Quiero echar un vistazo a un local dentro del generador.
parece que realmente estás estirando el patrón del generador demasiado lejos. ¿Por qué no utilizar un enfoque que se adapte mejor a su caso de uso en lugar de tratar de adaptar su problema al concepto de generador estrecho? – nikow
+1 para una buena pregunta, para mí hay muchas ventajas de acceder a las variables que pueden cambiar durante el curso de la iteración a través del generador. –
Después de la discusión, escribí sobre mi solución aquí: http://blog.metaoptimize.com/2009/12/22/why-cant-you-pickle-generators-in-python-workaround-pattern-for-saving-training -state/ –