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.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.78
Multiple Inheritance
Glissez pour afficher le 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.
Merci pour vos commentaires !