Cuando invoco el método recursivo de la clase base de la clase derivada, la llamada recursiva se realiza contra el método derivado, en lugar del método de la clase base. ¿Cómo puedo evitar ese sin modificar la implementación de la clase base (en la clase de ejemplo A)?anula el método recursivo en python
Aquí es un ejemplo
class A(object):
# recursive method
def f(self, x):
print x,
if x < 0:
self.f(x+1)
if x > 0:
self.f(x-1)
if x == 0:
print ""
class B(A):
# Override method
def f(self):
# do some pretty cool stuff
super(B, self).f(25)
if __name__ == "__main__":
A().f(5)
B().f()
Tengo esta salida:
5 4 3 2 1 0
25
Traceback (most recent call last):
File "./test.py", line 19, in <module>
B().f()
File "./test.py", line 15, in f
super(B, self).f(25)
File "./test.py", line 9, in f
self.f(x-1)
TypeError: f() takes exactly 1 argument (2 given)
Gracias de antemano,
Simplemente cambie el nombre de su función ... – JBernardo