1、Super使用方法
super()
函数在Python中用于调用父类的方法。它返回一个代理对象,可以通过该对象调用父类的方法。
要使用super()
方法,需要在子类的方法中调用super()
,并指定子类本身以及方法的名称。这样就可以在子类中调用父类的方法。
以下是使用super()
方法的示例:
class Parent:
def __init__(self):
self.name = "Parent"
def greet(self):
print("Hello, I am", self.name)
class Child(Parent):
def __init__(self):
super().__init__()
self.name = "Child"
def greet(self):
super().greet()
print("Nice to meet you!")
child = Child()
child.greet()
输出结果为:
Hello, I am Child
Nice to meet you!
在上面的例子中,Child
类继承自Parent
类。在Child
类的__init__
方法中,我们通过super().__init__()
调用了父类的__init__
方法。这样就可以在子类的__init__
方法中执行父类的初始化逻辑。
在Child
类的greet
方法中,我们首先通过super().greet()
调用了父类的greet
方法,然后打印出一条额外的信息。这样就可以在子类的方法中扩展父类的功能。
注意,在Python 2.x版本中,我们需要使用super(Child, self)
来调用父类的方法,而不是super()
。
2、不支持示例
class ParentA:
def greet(self):
print("Hello from Parent A")
class ParentB:
def greet(self):
print("Hello from Parent B")
class Child(ParentA, ParentB):
def greet(self):
super(Child, self).greet() # 默认调用第一个父类的方法
super(ParentB,self).gret() # 显式调用第一个父类的方法
child = Child()
child.greet()
3、正确示例
class ParentA:
def greet(self):
print("Hello from Parent A")
class ParentB:
def greet(self):
print("Hello from Parent B")
class Child(ParentA, ParentB):
def greet(self):
super(Child, self).greet() # 默认调用第一个父类的方法
ParentB.greet(self) # 显式调用第二个父类的方法
child = Child()
child.greet()