PEP 367 - New Super [Py2.6]
PEP 3135 - New Super [Py3.0]
https://www.programiz.com/python-programming/methods/built-in/super
The super() builtin returns a proxy object (temporary object of the superclass) that allows us to access methods of the base class.
In Python, super() has two major use cases:
(1) allows us to avoid using the base class name explicitly,
(2) working with Multiple Inheritance.
#class Bird(object): # Py2, new style classes
class Bird: # Py3
def __init__(self, name):
print("{} is a bird.".format(name))
class Parrot(Bird):
def __init__(self, name, food):
#Bird.__init__(self, name) # old style
#super(Parrot, self).__init__(name) # Py2 and Py3
super().__init__(name) # Py3, the name Bird is not used
print("{} is a parrot and it likes {}.".format(name, food))
parrot = Parrot("Ara", "seeds")
# Ara is a bird.
# Ara is a parrot and it likes seeds.