Como Bateria y Guitarra heredan de Instrumento, ambos tienen un método tocar y un método romper, y se inicializan pasando un parámetro precio. Pero, ¿qué ocurriría si quisiéramos especificar un nuevo parámetro tipo_cuerda a la hora de crear un objeto Guitarra? Bastaría con escribir un nuevo método __init__ para la clase Guitarra que se ejecutaría en lugar del __init__ de Instrumento.
Ahora bien, puede ocurrir en algunos casos que necesitemos sobreescribir un método de la clase padre, pero que en ese método queramos ejecutar el método de la clase padre porque nuestro nuevo método no necesite más que ejecutar un par de nuevas instrucciones extra. En ese caso usaríamos la sintaxis SuperClase.metodo(self, args); por ejemplo, para llamar al método __init__ de Instrumento desde Guitarra usaríamos Instrumento.__init__(self, precio)
Observad que en este caso si es necesario especificar el parámetro self.
Código Python:
Ver original
class Instrumento: def __init__(self, precio): self.precio = precio def tocar(self): print "Estamos tocando musica" def romper(self): print "Eso lo pagas tu" print "Son", self.precio, "$$$" class Bateria(Instrumento): pass class Guitarra(Instrumento): pass
Alguien podria traducirme el ejemplo de arriba al codigo que propone la pagina inicialmente?
No me queda claro donde queda el Super.Clase.metodo(self, args)
Gracias de antemano.
Exitos!