[Python-es] Re: [Python-es] ¿Cierres en Python?

Marcos Sánchez Provencio rapto en arrakis.es
Mie Ago 7 21:17:34 CEST 2002


Una pequeña puntualización, por meter baza: Los parámetros por defecto
se evalúan en el momento de la definición para cualquier función, no
sólo para las lambdas.

El mié, 07-08-2002 a las 20:22, Esteban Manchado Velázquez escribió:
> Ante todo, gracias a Hernán y Andrés por su ayuda. Al final conseguí
> resolverlo.
> 
> On Wed, Aug 07, 2002 at 06:40:09PM +0200, Andrés Marzal Varo wrote:
> > Mensaje citado por Esteban Manchado Velázquez 
> > <zoso en demiurgo.org>: 
> >  
> >  
> > [...]
> > Si no te he entendido mal, tienes el mismo problema que 
> > surge al tartar de meter lambda-funciones como callbacks 
> > en aplicaciones que usan Tkinter.
> 
>    s/Tkinter/Jabber/, pero la idea es la misma ;-)
> 
> > En ese otro contexto, 
> > el problema se soluciona como ves: se crea un parámetro 
> > con valor por defecto (le he llamado s, pero puedes 
> > llamarle self) y se le asigna el valor por defecto self. 
> > El valor por defecto se establece en el contexto de 
> > ejecución de creación de la lambda-función, así que 
> > debería solucionar tu problema. 
> 
>    Sí, eso soluciona el problema, gracias. En realidad tuve que darle cuatro
> parámetros, por unos detalles «turbios» de cómo se hace la llamada a la
> función que se registra como «de vuelta» :-) Pero en resumidas cuentas, era
> suficiente saber que los parámetros por omisión de las lambda se evaluaban en
> la creación y no en la llamada.
> 
>    Gracias a todos por la ayuda,
> 
> -- 
> Esteban Manchado Velázquez <zoso*demiurgo*org> - http://www.demiurgo.org
> No software patents in Europe! - freepatents.org - proinnova.hispalinux.es
> Join Amnesty International - http://www.amnesty.org/actnow






Más información sobre la lista de distribución Python-es