[pyar] Eventos

Nicolas Rebagliati nicolas.rebagliati en aenima-x.com.ar
Lun Jul 5 14:30:32 ART 2010


mmm nunca habia estuchado de callbacks..voy a darle una mirada..gracias

2010/7/5 Juan Pedro Fisanotti <fisadev en gmail.com>

> 2010/7/5 Facundo Batista <facundobatista en gmail.com>:
> > 2010/7/5 Nicolas Rebagliati <nicolas.rebagliati en aenima-x.com.ar>:
> >
> >> Hay alguna forma de implementar eventos en python al estilo .NET?
> >
> > ¿Qué son eventos al estilo .NET?
> >
> > Slds.
> >
> > --
> > .    Facundo
>
> Comento como son los eventos en C# .Net, asumo que él se refería a esto:
>
> Ej: Persona, que dispara un evento cuando tiene ganas de ir al baño.
>
> - Creas tu clase Persona.
>
> - Creas un delegado OnGanasIrBaño, donde definís la firma de los
> métodos con los cuales vas a poder adherir a ese delegado. En el
> delegado decís que los métodos que quieran adherir a OnGanasIrBaño
> deben recibir un único parámetro string, donde van a recibir la
> descripción de lo que se quiere hacer en el baño.
>
> - Definis un evento GanasIrBaño en la clase Persona, a partir del
> delegado creado.
>
> - En cualquier parte del código de tu clase, ahora podes disparar el
> evento, llamandolo como si se tratase de un método.
>
> - Luego cuando instancies una Persona, podes suscribir manejadores a
> ese evento (métodos que respeten la estructura definida en el
> delegado).
>
> El código sería así:
>
>
> public class Persona
> {
>    public delegate void OnGanasIrBaño(string necesidad);
>    public event OnGanasIrBaño GanasIrBaño;
>
>    public void Levantarse()
>    {
>        //dar ganas de ir al baño cuando se levanta
>        this.GanasIrBaño("hacer pis");
>    }
> }
>
> ...
>
> class MiPrograma
> {
>    public void UnMetodo()
>    {
>        Persona fisa = Persona();  //aca menti :P
>        fisa.GanasIrBaño += new
> Persona.OnGanasIrBaño(this.ManejadorGanasIrBaño);
>        fisa.Levantarse();  //aca va a dispararse el evento
>    }
>
>    public void ManejadorGanasIrBaño(string necesidad)
>    {
>         //este va a ser el codigo que "maneje" el evento
>         MessageBox.Show("quiere ir al baño a hacer " + necesidad);
>    }
> }
>
> Asumo que en python lo normal sería hacerlo con callbacks, no?
>
> --
> fisa  -  Juan Pedro Fisanotti
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100705/93309713/attachment.html>


More information about the pyar mailing list