Buscar..


Método básico anulando

Este es un ejemplo de anulación básica en Python (por motivos de claridad y compatibilidad con Python 2 y 3, usando una nueva clase de estilo e print con () ):

class Parent(object):
    def introduce(self):
        print("Hello!")

    def print_name(self):
        print("Parent")
    
    
class Child(Parent):
    def print_name(self):
        print("Child")
    
    
p = Parent()
c = Child()

p.introduce()
p.print_name()

c.introduce()
c.print_name()

$ python basic_override.py 
Hello!
Parent
Hello!
Child

Cuando el Child se crea la clase, que hereda los métodos de la Parent clase. Esto significa que cualquier método que tenga la clase padre, la clase hija también tendrá. En el ejemplo, la introduce se define para la clase Child porque está definida para Parent , a pesar de no estar definida explícitamente en la definición de clase de Child .

En este ejemplo, la anulación se produce cuando Child define su propio método print_name . Si este método no fue declarado, entonces c.print_name() habría impreso "Parent" . Sin embargo, Child ha anulado el Parent definición 's de print_name , y por eso ahora al llamar c.print_name() , la palabra "Child" se imprime.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow