[Pytho-es] metaclases y operaciones con clases
tny
a.porrua en gmail.com
Sab Jun 30 11:48:54 CEST 2007
> Cuando uno sabe todo lo que necesita saber para programar, viene david
> con su pequeña gran introducción a las metaclases a complicarnos la vida
> XD
>
> Pues tenía un proyectín en mente que iba a hacer, cómo no, sin
> metaclases. Pues casualidades de la vida, que me he dado cuenta de que
> las meta clases me vienen de perlas.
>
> Sólo hay un único problema, que ahora me encuentro en medio del desierto
> porque no quiero hacerlo sin y no sé hacerlo con...
>
> La duda y cuestión: ¿con metaclases se podría hacer lo siguiente?¹
>
>
> >>>class producto:
> ... def __call__(self,a,b):
> ... return a*b
>
> >>>class hola:
> ... def __call__(self):
> ... print "hola"
>
> >>>suma=hola+producto # he aquí el quid de la cuestión
>
> >>>s=suma()
>
> >>>s(5,6)
> hola
> 30
>
>
> ________________________________________________________
> ¹ paste-copy de ficcion, no intente esto en su ordenador
>
>
sin metaclases yo lo haría así más o menos.
class Comando:
def __init__(self,funciones=[]):
self.funciones=funciones
def __call__(self,*parametros):
return [funcion(*parametros) for funcion in self.funciones]
def __add__(self,other):
return Comando(self.funciones+other.funciones)
>>> def producto(a,b,*resto):
return a*b
>>> def hola(*resto):
print "hola"
>>> Producto=Comando([producto])
>>> Hola=Comando([hola])
>>> Suma=Producto+Hola
>>> Suma(5,6)
hola
[30, None]
Pero ni Producto, ni Hola son clases.
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es