Python|具有多级继承的 super()函数
Python中的 super()函数:
Python超函数为我们提供了显式引用父类的便利。在我们必须调用超类函数的情况下,它基本上很有用。它返回允许我们通过'super'引用父类的代理对象。
要理解Python超级函数,我们必须了解继承。在Python继承中,子类继承自超类。
Python Super函数为我们提供了进行单级或多级继承的灵活性,使我们的工作更轻松、更舒适。请记住一件事,当从子类中引用超类时,不需要显式地写出超类的名称。
以下是如何在 Python3 中调用超级函数的一个示例:
# parent class also sometime called the super class
class Parentclass():
def __init__(self):
pass
# derived or subclass
# initialize the parent or base class within the subclass
class subclass(Parentclass):
def __init__(self):
# calling super() function to make process easier
super()
具有多级继承的Python super()函数。
正如我们所研究的那样, Python super()
函数允许我们隐式引用超类。但是在多级继承中,问题出现了,有这么多类,那么super()
函数将引用哪个类?
嗯, super()
函数有一个属性,它总是引用直接的超类。另外, super()
函数不仅引用了__init__() ,它还可以在需要时调用超类的其他函数。
这是解释多重继承的示例。
# Program to define the use of super()
# function in multiple inheritance
class GFG1:
def __init__(self):
print('HEY !!!!!! GfG I am initialised(Class GEG1)')
def sub_GFG(self, b):
print('Printing from class GFG1:', b)
# class GFG2 inherits the GFG1
class GFG2(GFG1):
def __init__(self):
print('HEY !!!!!! GfG I am initialised(Class GEG2)')
super().__init__()
def sub_GFG(self, b):
print('Printing from class GFG2:', b)
super().sub_GFG(b + 1)
# class GFG3 inherits the GFG1 ang GFG2 both
class GFG3(GFG2):
def __init__(self):
print('HEY !!!!!! GfG I am initialised(Class GEG3)')
super().__init__()
def sub_GFG(self, b):
print('Printing from class GFG3:', b)
super().sub_GFG(b + 1)
# main function
if __name__ == '__main__':
# created the object gfg
gfg = GFG3()
# calling the function sub_GFG3() from class GHG3
# which inherits both GFG1 and GFG2 classes
gfg.sub_GFG(10)
输出:
HEY !!!!!! GfG I am initialised(Class GEG3)
HEY !!!!!! GfG I am initialised(Class GEG2)
HEY !!!!!! GfG I am initialised(Class GEG1)
Printing from class GFG3: 10
Printing from class GFG@: 11
Printing from class GFG1: 12