El día 30 de abril de 2010 11:01, Hernan M Foffani
<hfoff...@gmail.com> escribió:
> 2010/4/30 monoBOT <monobot.s...@gmail.com>
>>
>> Seguro que existen métidos para la multiasignación de variables, pero yo no 
>> lo conozco, bueno en realidad conozco uno:
>>
>> variable1, variable2,variable3, variable4, variable5, variable6 = 1,2,3,4,5,6
>>
>> print variable1
>>
>> 1
>>
>> pero éste método es un poco lento para lo que yo necesito… yo tengo en mi 
>> programa varios sitios donde hago
>> asignación masiva de variables del tipo
>> variable busca el valor aki1 y aki2 .......
>>
>> EN DEFINITIVA … alguien me puede aconsejar algún metodo de asignación masiva 
>> de variables?? … gracias
>
> Podrías usar instropección (getattr() y setattr()).
> Con un diccionario mapeas los nombres rhs->lhs y con un simple bucle
> recorres los nombres de las variables y las vas asignando. Si los
> nombres son "atributo" + "_fichero" puedes obviar el diccionario.
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>

Y así como complemento:
http://en.wikipedia.org/wiki/Lazy_evaluation

Con __getattr__ se realizaría la evaluación de forma perezosa: Solo se
parsearía o recorreria el dom xml cuando para obtener un atributo
cuando este fuese a usarse. Pero tal como está planteado el
__getattr__, siempre que preguntases por un mismo atributo se
paresearia o recorreria el dom xml. Para evitar esto se puede meter el
valor del atributo calculado en el __dict__ del objeto (__getattr__
solo es llamado con los atributos que le son desconocidos).

El problema de esta forma de trabajo es el siguiente:
 * Si te guardas el dom parseado del xml estas consumiendo memoria
hasta que se destruya el objeto.
 * Si parseas cada vez el xml estas cargando de trabajo al programa.
 * Se puede hacer un hibrido de las 2 anteriores usando weakref. Pero
eso complica ligeramente el código.

Las ventajas:
 * Se tarda cero coma en implementarse
 * Las desventajas son pequeñas y sirve para el 99% de los casos.

Un saludo:

Javi
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a