[pyar] Maybe Metaprogramming?

Daniel Moisset dmoisset en machinalis.com
Jue Sep 17 12:24:57 ART 2015


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/b2d9daa1/attachment.html>


More information about the pyar mailing list