llamar una funcion con parametro (completa)
Jose Manuel Vivo
jmvivo en cenoclap.es
Vie Ene 31 09:39:06 CET 2003
El Mié 29 Ene 2003 19:58, Marcelo Abeldaño escribió:
> siguiendo con las consultas de novato:
>
> -------------------8<---------------------
> def botonera(self,nro):
> ...
> botones.add('Nuevo',command =
> self.nuevo_renglon(nro))
> ...
>
> def nuevo_renglon(self,nro):
> agrego_cosas.....
> ...
> -------------------8<---------------------
>
> lo que pasa es lo siguiente, cuando llamo a
> command = self.nuevo_renglon
> sin parametros, funciona todo ok. El problema es que
> le tengo que pasar un parametro
> command = self.nuevo_renglon(nro)
> entonces me ejecuta la funcion al inicializar...
>
> desde ya gracias a todos por la ayuda
> Marcelo
>
>
> =====
> Perdimos trabajo, petroleo, industria, el campo, empresas, la salud, la
> justicia, educación y lo peor...... unos pocos nos robaron el futuro.....
> Ahora decime: POR QUE CARAJO MENEM SE MERECE TU VOTO?
> No dejes que le robe el futuro también nuestros hijos........
>
> Ahora podés usar Yahoo! Messenger desde tu celular. Aprendé cómo hacerlo en
> Yahoo! Móvil: http://ar.mobile.yahoo.com/sms.html
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo.py/python-es
Tu problema es que al parsarle la funcion de de esa manera "command =
self.nuevo_renglon(nro)" no estas pasando una referencia a la funcion, sino
le estas pidiendo el resultado de esta y, por lo tanto, solo la ejecuta al
crear el cotrol para asignar el resultado al parametro "command". Para
pasarle la referencia deberias usar "command = self.nuevo_renglon", asi le
pasas la referencia a un objeto funcion sin invocarlo.
Para solucionarlo deberias guardar el valor en algun sitio dentro del control
principal al que pudieres acceder desde "nuevo_renglon".
Más información sobre la lista de distribución Python-es