Persistencia para una variable
Germán Carrera
gcarrera en cnb.uam.es
Mie Feb 28 14:34:26 CET 2007
Perdón, variables globales.
Saludos
Germán Carrera wrote:
> Hola Chema,
>
> Voy a probar lo que me comentas sobre variables de clase la solución
> parece mucho más elegante que la de usar variables locales.
>
> Muchas gracias.
>
> Chema Cortes wrote:
>> El 27/02/07, Germán Carrera <gcarrera en cnb.uam.es> escribió:
>>
>>> Gracias por la ayuda, el caso es un poco enrevesado y para buscar una
>>> solución, debido a que no puedo modificar el código que no forma parte
>>> de mi módulo hice una reproducción con un pequeño ejemplo de lo que
>>> pasaba .
>>>
>>> Esto es a grandes rasgos, en cada iteración se creaba una instancia
>>> nueva de "test" perdiéndose el valor de las propiedades de la clase
>>> generada anteriormente, añadiendo el global (en este caso que el objeto
>>> se instancia en cada iteración) se acaban más o menos los problemas.
>>>
>>> Si pudiera accader al resto, sólo haría falta quitar test_=test() de
>>> dentro del for y ponerlo encima.
>>
>> Entiendo mejor el problema. Como te comentaba, la alternativa a usar
>> variables globales sería usar atributos de clase:
>>
>> class test:
>> carajo=[6,7]
>> def __init__(self):
>> None
>> def algofunc(self,iter):
>> for n in range(90):
>> if iter==5:
>> test.carajo=[2,3,3,4,5,3,4,3]
>> print test.carajo
>>
>>
>> La ventaja de hacerlo así es que haces que el atributo global se
>> asocie a la clase, con lo que queda más claro si vas a hacer
>> subclases.
>>
>> Por cierto, cuando no quieras poner nada en el cuerpo de una función
>> usa el token 'pass':
>>
>> def __init__(self):
>> pass
>> _______________________________________________
>> Python-es mailing list
>> Python-es en aditel.org
>> http://listas.aditel.org/listinfo/python-es
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
Más información sobre la lista de distribución Python-es