在类的方法中,如何调用其父类的同名方法?
参考答案:
在Python中,如果你想在子类的方法中调用其父类的同名方法,你可以使用super()
函数或者通过类名直接调用。以下是两种方法的示例:
方法一:使用super()
函数
super()
函数会临时返回当前类的父类,从而允许你调用父类的方法。以下是一个简单的例子:
class Parent:
def hello(self):
print("Hello from Parent")
class Child(Parent):
def hello(self):
super().hello() # 调用父类的hello方法
print("Hello from Child")
c = Child()
c.hello()
当你运行上述代码时,会首先打印出 "Hello from Parent",然后打印出 "Hello from Child"。这是因为super().hello()
调用了父类的hello
方法。
方法二:通过类名直接调用
你也可以直接通过父类的类名来调用其方法。但是这种方法的一个缺点是,如果子类改变了父类,那么你需要更新子类中的代码。以下是使用类名直接调用的例子:
class Parent:
def hello(self):
print("Hello from Parent")
class Child(Parent):
def hello(self):
Parent.hello(self) # 直接通过父类名调用hello方法
print("Hello from Child")
c = Child()
c.hello()
这段代码的运行结果和上一个例子是一样的。但是请注意,如果Child
类有多个继承自Parent
的父类,或者Parent
类在Child
类定义之后被修改,那么直接通过类名调用可能会引发问题。因此,通常推荐使用super()
函数来调用父类的方法。