Persistencia para una variable

Chema Cortes py en ch3m4.org
Lun Feb 26 17:53:44 CET 2007


Germán Carrera escribió:

> __init__  añadir
> self.plan=[]
> 
> Y substituir en el caso del código de abajo.
> pero en este caso la lista self.plan pierde su valor en cada una de las 
> iteraciones.

Aunque un poco más claro, no entiendo bien qué abarcan cada una de esas 
iteracciones. El atributo plan no debería perder su valor a no ser que 
lo que realmente estés haciendo es crear nuevas instancias en lugar de 
reutilizar la misma.

Dime si me equivoco, pero creo que lo que quieres es que varias 
instancias compartan el valor de un mismo atributo. Si fuera así, lo que 
estás necesitando es un "atributo de clase". En lugar de iniciar 'plan' 
en el método __init__, ponlo fuera de los métodos:

class MyIter:
   plan=[]

   def __init__(self):
    ....

   def myiter(self):
     MyIter.plan.append(task)


(También se podrías acceder como "self.plan", pero conviene ser 
explícito y hacer ver que es un atributo de la clase)

-- 
Chema Cortés (py en ch3m4.org)
"Proudly made on earth by generic humanoid carbon units"




Más información sobre la lista de distribución Python-es