The super() function lets you run a parent class function inside the child class. Python super method returns a proxy object that delegates method calls to a parent or sibling class of type. It is used to access inherited methods that have been overridden in a class.
Python call super method example
Simple example code.
class Parent(object):
def __init__(self, age):
self.age = age
def func(self):
print(f"Hi, my age is {self.age}!")
class Child(Parent):
def __init__(self, age):
# use the super to run the parent class __init__ function to set the childs' name
super().__init__(age)
dad = Parent(50)
kid = Child(18)
dad.func()
kid.func() # The kid inherits it from the dad, so I could run it like that too
Output:
How do I call a parent class’s method from a child class in Python?
Answer: Use the super() function: Return a proxy object that delegates method calls to a parent or sibling class of type.
class A(object):
def foo(self):
print ("foo")
class B(A):
def foo(self):
super(B, self).foo() # calls 'A.foo()'
myB = B()
myB.foo()
Output: foo
How to call a super method from the grandchild class?
Answer: Here is an example of calling a super method from the grandchild class.
class Grandparent(object):
def my_method(self):
print("Grandparent")
class Parent(Grandparent):
def my_method(self):
print("Parent")
class Child(Parent):
def my_method(self):
print("Hello Grandparent")
Grandparent.my_method(self)
obj1 = Child()
obj1.my_method()
Output:
Hello Grandparent
Grandparent
Do comment if you have any doubts or suggestions on this Python method tutorial.
Note: IDE: PyCharm 2021.3.3 (Community Edition)
Windows 10
Python 3.10.1
All Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.