[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