<br><br><div class="gmail_quote">El 30 de abril de 2010 11:15, Pablo Angulo <span dir="ltr">&lt;<a href="mailto:pablo.angulo@uam.es">pablo.angulo@uam.es</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Puedes sobreescribir el método __getattribute__ de tu clase:<br>
<br>
def__getattribute__(self, name):<br>
    return xml_none(busqueda_xml (&#39;usuario&#39;,name))<br>
<br>
Estarías usando los mismos nombres para las variables que para las<br>
columnas de la tabla. Tal y como te lo cuento, harías demasiadas<br>
consultas a la base de datos, pero puedes guardar todas las columnas en<br>
un diccionario (digamos self.variables), y luego lo consultas:<br>
<br>
def__getattribute__(self, name):<br>
    return self.variables[name]<br>
<br>
También puedes usar eval, pero en principio no se recomienda.<br>
Un saludo<br>
monoBOT escribió:<br>
<div><div></div><div class="h5">&gt;<br>
&gt; Seguro que existen métidos para la multiasignación de variables, pero<br>
&gt; yo no lo conozco, bueno en realidad conozco uno:<br>
&gt;<br>
&gt; variable1, variable2,variable3, variable4, variable5, variable6 = 1,2,3,4,5,6<br>
&gt;<br>
&gt; print variable1<br>
&gt;<br>
&gt; 1<br>
&gt;<br>
&gt; pero éste método es un poco lento para lo que yo necesito… yo tengo en<br>
&gt; mi programa varios sitios donde hago asignación masiva de variables<br>
&gt; del tipo<br>
&gt; variable busca el valor aki1 y aki2<br>
&gt; … de tal forma que es una lista enorme tal como esta:<br>
&gt;<br>
&gt;         self.nombre_fichero = xml_none(busqueda_xml (&#39;usuario&#39;, &#39;nombre&#39;))<br>
&gt;         self.primerapellido_fichero = xml_none(busqueda_xml (&#39;usuario&#39;, &#39;primerapellido&#39;))<br>
&gt;         self.segundoapellido_fichero = xml_none(busqueda_xml (&#39;usuario&#39;, &#39;segundoapellido&#39;))<br>
&gt;         self.dni_fichero = xml_none(busqueda_xml (&#39;usuario&#39;, &#39;dni&#39;))<br>
&gt;         self.direccion_fichero = xml_none(busqueda_xml (&#39;usuario&#39;, &#39;direccion&#39;))<br>
&gt;         self.codigopostal_fichero = xml_none(busqueda_xml (&#39;usuario&#39;, &#39;codigopostal&#39;))<br>
&gt;         self.poblacion_fichero = xml_none(busqueda_xml (&#39;usuario&#39;, &#39;poblacion&#39;))<br>
&gt;         self.provincia_fichero = busqueda_xml (&#39;usuario&#39;, &#39;provincia&#39;)<br>
&gt; y así hasta 50 variables seguidas<br>
&gt;<br>
&gt; lo cual hace bastante feo el código… se me ocurría hacer algo así:<br>
&gt;<br>
&gt; lista = (A1, &#39;A2&#39;, &#39;A3&#39;, B1, &#39;B2&#39;, &#39;B3&#39;, ...)<br>
&gt; for m in range (0,len(lista),3):<br>
&gt; lista[m] = busqueda (lista[m+1], lista[m+2])<br>
&gt;<br>
&gt; pero lo que hace es sustituir el valor de las casillas m por el valor<br>
&gt; asignado. luego se me ocurrió hacerlo mediante una tupla ya que como<br>
&gt; el valor es inmutable se podría asignar el valor a la variable.<br>
&gt; ya que de hecho el ejemplo del principio lo que se hace es darle a la<br>
&gt; tupla el valor directamente.<br>
&gt;<br>
&gt; tupla = (A1, B1, C1, ...)<br>
&gt; lista = (A2, A3, B2, B3, C2, C3, ...)<br>
&gt; for m in range (0, len(lista), 2):<br>
&gt;     tupla[m] = busqueda(lista[m], lista[m+1])<br>
&gt;<br>
&gt; éste método tampoco funciona puesto que dice qeu el valor de la tupla<br>
&gt; es inmutable… me quedé sin ideas.<br>
&gt;<br>
&gt;<br>
&gt; EN DEFINITIVA … alguien me puede aconsejar algún metodo de asignación<br>
&gt; masiva de variables?? … gracias<br>
&gt;<br>
&gt;<br>
&gt; --<br>
</div></div>&gt; <a href="http://monobotblog.alvarezalonso.es" target="_blank">monobotblog.alvarezalonso.es</a> &lt;<a href="http://monobotblog.alvarezalonso.es" target="_blank">http://monobotblog.alvarezalonso.es</a>&gt;<br>

&gt; ------------------------------------------------------------------------<br>
<div><div></div><div class="h5">&gt;<br>
&gt; _______________________________________________<br>
&gt; Python-es mailing list<br>
&gt; <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
&gt; <a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
&gt; FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br></div></div></blockquote><div><br>Tu código funcionaría si la variable de la asignación fuera un elemento de la lista en lugar de un elemento de la tupla (esta si es inmutable), es decir que en lugar de:<br>
<br>  tupla[m] = busqueda(lista[m], lista[m+1])<br><br>deberías utilizar algo así:<br><br>  lista_receptora[m] =   busqueda(lista[m], lista[m+1])<br><br>Saludos<br>José Luis Torre<br><a href="http://www.ehu.es">www.ehu.es</a><br>
<br><br><br></div></div><br>