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

~joksnet joksnet en gmail.com
Lun Jul 12 06:02:51 ART 2010


Porque no llamar a una funcion nueva, y que en vez de sobreescribir el
__init__, se sobreescriba esa funcion. Es poco pytonico ?

>>> class A:
...     def __init__(self):
...             print 'A'
...             self.init()
...     def init(self):
...             pass
...
>>> class B(A):
...     def init(self):
...             print 'B'
...
>>> a = A()
A
>>> b = B()
A
B
>>>

Saludos,

2010/7/12 John Rowland Lenton <john.lenton en canonical.com>:
> On Sun, Jul 11, 2010 at 08:51:56PM -0300, Juan BC wrote:
>> 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:
>> >
>> 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.
>
> y por que no llamás a "metodo" desde el __init__ de A? Si A es una
> clase concreta, le das una implementación de cortesía (que haga
> "pass"); si es abstracta, levantá un NotImplementedError("las
> subclases deben pisarme").
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iQEcBAEBCAAGBQJMOokjAAoJEIMEmW3KgE4RmZIH/i0SIo+A/G8GAZ/LJWZqWuXt
> d+G8xK3qJGRXy+H7/Ue8GKpuctCJRfjdV/67SxfcWdwScT+IHh4JQ92QA9Res+h4
> JChpEziRFSk8aus0OJX4lKm2MUDJX/F6TpY3nKOslV8hrPcSTwFE99hkP0lGOziz
> BzQFAG7uabuB13twHLoyt/znJLDNc7NzOj7AV6WJWjP3OrZ5l6IWpWOkceaMcdde
> XmHdx2a+95yqjvIFVtIR1apzjXWlDE1rc1NL8sLyxk32CHAKUiUkd5rRhZ0jJaUZ
> cgqcAHYwTOYdQqrD5WqN6pIg8aDlOPbfhy25CTKlv+Bs1D9XJq+GnDld4tJqD6E=
> =/7bU
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>



-- 
Juan Manuel



More information about the pyar mailing list