What is the purpose of the
Answer:
The super
keyword in Python is used to refer to a parent class. It is commonly used in method resolution order (MRO) when a class is derived from multiple parent classes (i.e., multiple inheritance).
In Python, when a method is called on an object, the interpreter first looks for that method in the object's class. If the method is not found in the class, the interpreter will look for it in the parent class, and so on, until it either finds the method or reaches the end of the inheritance chain. This process is called method resolution order (MRO).
The super
keyword allows you to explicitly specify the parent class that you want to call a method on, rather than relying on the default MRO. For example:
class Shape: def area(self): return 0 class Square(Shape): def __init__(self, side_length): self.side_length = side_length def area(self): return self.side_length ** 2 class Cube(Square): def volume(self): return super().area() * self.side_length my_cube = Cube(10) print(my_cube.volume()) # 1000
In this example, the Cube
class derives from the Square
class, which in turn derives from the Shape
class. The Cube
class has a volume
method that needs to calculate the area of a Square
object, so it calls super().area()
. This calls the area
method of the parent class, Square
, instead of the area
method of the Shape
class, which returns 0 by default.
Related Articles:
This section is dedicated exclusively to Questions & Answers. For an in-depth exploration of Python, click the links and dive deeper into this subject.
Join Our telegram group to ask Questions
Click below button to join our groups.