Persistencia para una variable
Germán Carrera
gcarrera en cnb.uam.es
Lun Feb 26 15:30:54 CET 2007
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?
>
>
>
>
Más información sobre la lista de distribución Python-es