[pyar] Maybe Metaprogramming?

Emiliano reynares.emiliano en gmail.com
Jue Sep 17 12:35:36 ART 2015


Lo he visto, solo que seguiria sin poder impedir que sea instanciada la clase de la cual obtengo los métodos a bindear. O estoy equivocado?

Emiliano 

-----Mensaje original-----
De: "Daniel Moisset" <dmoisset en machinalis.com>
Enviado el: ‎17/‎09/‎2015 12:25 p.m.
Para: "Python Argentina" <pyar en python.org.ar>
Asunto: Re: [pyar] Maybe Metaprogramming?

Algo como http://stackoverflow.com/questions/8544983/dynamically-mixin-a-base-class-to-an-instance-in-python te sirve?


2015-09-17 12:15 GMT-03:00 Emiliano Reynares <reynares.emiliano en gmail.com>:

Gente,


Tengo una consulta un poco extraña que hacerles pero espero me puedan orientar. Lo que necesito es definir una estructura que me permita agrupar e implementar un conjunto de métodos, los cuales serán "bindeados" a un individuo que pertenece a una clase distinta, en tiempo de ejecución.
Por el momento lo que se me ha ocurrido es agrupar los métodos a ser "bindeados" en una clase. Luego defino un método que permite bindearlos a un instancia de una clase diferente. Algo así:


class A:
    def bind_methods(self, cls):
        pass


class B:
    def b1(self):
        pass


    def b2(self):
        pass


Luego, puedo hacer:


foo = A()
foo.bind_methods(B)


La implementación la omito para no hacer más largo el mail, pero tengo eso funcionando. Sin embargo, dudo bastante que sea la manera más elegante de implementar lo que estoy necesitando.
Primero, necesitaría que la clase en la cual agrupo los métodos a "bindear" (clase B del ejemplo) no pueda ser instanciada. Aún cuando pudiera lograr eso, el argumento "self" de los métodos definidos en ese contexto es muy confuso (aunque luego funciona perfectamente al ser "bindeado" a la instancia).
Alguna sugerencia/recurso que pueda consultar para conseguir una implementación más elegante?
Espero haber sido claro,


Saludos!




-- 

Emiliano Reynares

_______________________________________________
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/

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar






-- 

Daniel F. Moisset - Technical Leader
www.machinalis.com
Skype: @dmoisset
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150917/cba7b537/attachment.html>


More information about the pyar mailing list