[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