跳到主要内容

在类的方法中,如何调用其父类的同名方法?

参考答案:

在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()函数来调用父类的方法。