Herencia Múltiple
Una clase puede ser subclase de algunas otras clases (heredar de varias otras clases).
Para heredar de varias clases, puede escribir los nombres de las clases separados por comas (,
):
123456789101112131415161718192021class First: first_attribute = "First" def first_method(self): print("The first_method from the First class") class Second: second_attribute = "Second" def second_method(self): print("The second_method from the Second class") class Child(First, Second): pass instance = Child() print(instance.first_attribute) print(instance.second_attribute) instance.first_method() instance.second_method()
Pero la herencia múltiple tiene un orden. La prioridad de la búsqueda de atributos/métodos va de izquierda a derecha:
1234567891011class First: attribute = "First" class Second: attribute = "Second" class Child(Second, First): # Order starts from the `Second` pass instance = Child() print(instance.attribute)
Esto demuestra cómo el orden de herencia afecta a la resolución de atributos en los casos en que el mismo atributo se define en varias clases padre.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 2.78
Herencia Múltiple
Desliza para mostrar el menú
Una clase puede ser subclase de algunas otras clases (heredar de varias otras clases).
Para heredar de varias clases, puede escribir los nombres de las clases separados por comas (,
):
123456789101112131415161718192021class First: first_attribute = "First" def first_method(self): print("The first_method from the First class") class Second: second_attribute = "Second" def second_method(self): print("The second_method from the Second class") class Child(First, Second): pass instance = Child() print(instance.first_attribute) print(instance.second_attribute) instance.first_method() instance.second_method()
Pero la herencia múltiple tiene un orden. La prioridad de la búsqueda de atributos/métodos va de izquierda a derecha:
1234567891011class First: attribute = "First" class Second: attribute = "Second" class Child(Second, First): # Order starts from the `Second` pass instance = Child() print(instance.attribute)
Esto demuestra cómo el orden de herencia afecta a la resolución de atributos en los casos en que el mismo atributo se define en varias clases padre.
¡Gracias por tus comentarios!