Multiple Inheritance
A class can be a subclass of a few other classes (inherit from multiple other classes).
To inherit from multiple classes, you can write the names of the classes separated by commas (,
):
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()
But the multiple inheritance has an order. The priority of the attributes/methods search is going from left to right:
1234567891011class First: attribute = "First" class Second: attribute = "Second" class Child(Second, First): # Order starts from the `Second` pass instance = Child() print(instance.attribute)
This demonstrates how the order of inheritance affects attribute resolution in cases where the same attribute is defined in multiple parent classes.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Mi faccia domande su questo argomento
Riassuma questo capitolo
Mostri esempi dal mondo reale
Awesome!
Completion rate improved to 2.78
Multiple Inheritance
Scorri per mostrare il menu
A class can be a subclass of a few other classes (inherit from multiple other classes).
To inherit from multiple classes, you can write the names of the classes separated by commas (,
):
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()
But the multiple inheritance has an order. The priority of the attributes/methods search is going from left to right:
1234567891011class First: attribute = "First" class Second: attribute = "Second" class Child(Second, First): # Order starts from the `Second` pass instance = Child() print(instance.attribute)
This demonstrates how the order of inheritance affects attribute resolution in cases where the same attribute is defined in multiple parent classes.
Grazie per i tuoi commenti!