Persistencia para una variable

Germán Carrera gcarrera en cnb.uam.es
Lun Feb 26 17:42:40 CET 2007


Hola,

Parece que ya lo he solucionado, usando
global var

No es una solución elegante pero de momento me sirve.

El problema principal es que yo sólo estoy manejando un módulo de la 
aplicación y el resto pertenece a otras personas.

Saludos.


Germán Carrera wrote:
> Hola ,
> Perdón, sí se trata de una lista y no necesito persistencia más allá 
> de la vida de la aplicación.
> La función dentro de la clase es llamada desde fuera para realizar un 
> número de iteraciones determinado, en cada iteración generaba un 
> tarball con unas imágenes, ahora quiero que sólo sea generado durante 
> la primera iteración (por eso if job_data['iter']==1) y aun así 
> guardar el estado de plan y poder usarla en el resto de las iteraciones.
>
> Mi solución estaba en en el método
>
> __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.
>
> def plan_MLalign2D(self, job_data, chunkNum):
> ....
> ....
> ....
>       if job_data['iter']==1
>               for i in range(1,job_data['Nsplit']+1):
>                   subset_sel_file = 
> "%(MLroot)s_subset_"%job_data+str(i)+".sel"
>                   tarimg = 
> os.path.join(job_data['img_tar_dir'],subset_sel_file+".tgz")
>                   if not os.path.isfile(tarimg):
>                       tar_images(subset_sel_file, img_topdir, tarimg )
>                   task = [ 
> FILE.read(subset_sel_file),Base64BinaryFile.read(tarimg),i ]
>                   self.plan.append(task)
> ...
> ...
>
> Gracias, Germán
>
> Chema Cortes wrote:
>> Germán Carrera escribió:
>>> Necesito gruardar el estado de una variable, en este caso una tupla 
>>> a través de varias iteraciones.
>>>
>>> El código este
>>>            if job_data['iter']==1
>>>                for i in range(1,job_data['Nsplit']+1):
>>>                    subset_sel_file = 
>>> "%(MLroot)s_subset_"%job_data+str(i)+".sel"
>>>                    tarimg = 
>>> os.path.join(job_data['img_tar_dir'],subset_sel_file+".tgz")
>>>                    if not os.path.isfile(tarimg):
>>>                        tar_images(subset_sel_file, img_topdir, tarimg )
>>>                    task = [ 
>>> FILE.read(subset_sel_file),Base64BinaryFile.read(tarimg),i ]
>>>                    plan.append(task)
>>>
>>> Y la variable que quiero guardar es plan, lo he instantado hacer 
>>> creando una var externa self.plan pero no ha habido manera. La 
>>> cuestión quizá consistiría en hacer una copia por valor de la misma.
>>
>> No me queda nada claro lo que pides. 'plan' más que tupla parece ser 
>> una lista, pero no veo dónde la declaras ni cómo. Haría falta que 
>> especificaras si la persistencia la quieres durante la misma 
>> ejecución del programa, con lo que estaríamos en un problema de 
>> alcances ("scope") y clausuras, o si la persistencia la necesitas más 
>> allá de la vida de la aplicación, con lo que sería un problema de 
>> recuperar estados.
>>
>> Tampoco entiendo a qué te refieres por "variable externa" con 
>> self.plan . ¿Acaso es parte de un método lo que estás creando?
>>
>>
>>
>>
>
> _______________________________________________
> 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