Calling a Parent Class's method from Child Class in Python
This can be done using the
super() method for new-style classes.
To create a child class
Dog based on the parent class
Animal and then call the
class Animal():# This is constructor for pythondef __init__(self, name, age):self.name = namedef print_attribute(self):print("I have legs!")class Dog(Animal): # Name of the parent class must be included within the brackets# This is constructor for pythondef __init__(self, name, age):super().__init__(name, age) # Notice how we do not need self parameter heremy_dog = Dog("Roxas", 26)my_dog.print_attribute()I have legs!
super() method allows us to reference a temporary object of the parent class. Therefore, when we initialize an object from child class
Dog, we are actually calling the
__init__ constructor from parent class
Animal and hence we are able to inherit all attributes and methods from it.
The advantage of
super() is that it allows us to avoid explicitly referring to the parent class. Therefore, we can easily change the parent class name if needed without disrupting our program.