Funcion super()
Hernán Martínez Foffani
hernan en orgmf.com.ar
Lun Oct 25 17:49:04 CEST 2004
> #esto :
> class C(B):
> def meth(self, arg):
> super(C, self).meth(arg)
>
> #¿es lo mismo que esto ? :
> class C(B):
> def meth(self, arg):
> B.meth(self,arg)
>
> Si es lo mismo ¿que ventajas aporta la función super() ?
Recuerda que python tiene herencia múltiple.
Si C heredara de mas de una clase habria diferencias.
class B(object):
pass
class A(object):
def meth(self, arg):
print "A"
class C(B, A):
def meth(self, arg):
super(C, self).meth(arg)
aqui super te resuelve el problema al recorrer el grafo
de herencias.
-H.
Más información sobre la lista de distribución Python-es