Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/12/2014, 12:25
Avatar de korg1988
korg1988
 
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 18 años, 4 meses
Puntos: 19
Respuesta: Registrar todos los bound methods usando un decorador

No, me exprese terriblemente mal al parecer.
Lo que yo quiero es definir una clase, y sus respectivos metodos.
Luego, determinados metodos tienen que convertirse en listeners de determinados eventos del sistema.
Para eso cree un decorador que tome el nombre del metodo y lo añada como listener!
El problema es que el decorador toma el metodo como unbound.... y cuando la clase se instancia, ese metodo ya no es el unbound que habia sido registrado, sino que va a ser bound!....

Pongamoslo facil.

Quiero hacer que cada vez que se instancia una clase, un determinado metodo se registre como listener de un evento en el sistema! pero sin tener que hacerlo explicitamente en el __init__

No quiero algo asi:
Código Python:
Ver original
  1. class Test:
  2.     def __init__(self):
  3.         Events.addListener(‘miEvento’, Listener(self.mimetodo))
  4.     def mimetodo(self):
  5.         pass

Quisiera algo asi
Código Python:
Ver original
  1. class Test:
  2.     @Listener('miEvento')
  3.     def mimetodo(self):
  4.         pass
Cuando Listener obtenga el metodo "mimetodo" va a obtener su versión "unbound".... pero la que yo quiero llamar es la versión "bounded" de cada una de las instancias de la clase Test!

Mm no se como explicarlo