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
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!