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

Juan BC jbc.develop en gmail.com
Dom Jul 11 20:51:56 ART 2010


El 11/07/10 20:40, Pablo Ziliani escribió:
> 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.

El tema es que el metodo init tengo que redefinirlo y bastante... no en 
una jerarquia sino tengo muchas clases derivadas. y quiero que sin 
necesidad de llamar a "metodo" en en el __init__ aun asi se ejecute. Es 
un codigo de comprobacion el que tengo que lanzar.




More information about the pyar mailing list