[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