[pyar] Ejecutar un método al finalizar la instanciación

Pablo Ziliani pablo en kultroom.com
Dom Jul 11 20:40:44 ART 2010


Juan BC wrote:
> hay alguna forma que teniendo unas clases del tipo
>
> Class A(object):
>
>     def metodo(self):
>         print "WAWAWA"
>
>
> class B(A): pass
>
> se puede hacer algo como
>
> >>> b = B()
> WAWAWA
>
> sin necesidad de definirlo en el constructor de cada subclase?

No teniendo *exactamente* eso, pero hay miles de formas de hacer algo 
parecido, dependiendo de qué sea lo que querés hacer o lo que querés 
evitar tocar. Por ejemplo:

 >>> class A(object):
...     def metodo(self):
...             print "WAWAWA"
...
 >>> class B(A):
...     def __init__(self):
...             self.metodo()
...
 >>> B()
WAWAWA
<__main__.B object at 0x979ba6c>
 >>> class C(B): pass
...
 >>> C()
WAWAWA
<__main__.C object at 0x979ba6c>

También podés usar metaclasses, tocar el __new__, etc.



More information about the pyar mailing list