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