python中子类如何调用父类的函数

python中子类如何调用父类的函数

作者:Rhett Bai发布时间:2026-01-14阅读时长:0 分钟阅读次数:8

用户关注问题

Q
在Python中如何从子类访问父类的方法?

我创建了一个子类,想在子类中调用父类的某个方法,应该怎么实现?

A

用super()函数调用父类方法

在子类中,可以使用super()函数来调用父类的方法。例如:

class Parent:
    def greet(self):
        print('Hello from Parent')

class Child(Parent):
    def greet(self):
        super().greet()
        print('Hello from Child')

c = Child()
c.greet()

这样,调用子类的greet方法时会先执行父类的greet方法。

Q
是否可以直接通过父类名调用父类方法?

除了使用super(),能否通过父类名直接调用父类中的方法?

A

通过父类名显式调用方法也可以

可以通过父类名直接调用父类方法,传入self作为参数。例如:

class Parent:
    def greet(self):
        print('Hello from Parent')

class Child(Parent):
    def greet(self):
        Parent.greet(self)
        print('Hello from Child')

不过这种方法不支持多继承中对super的灵活处理。

Q
调用父类方法时需要注意哪些问题?

在子类调用父类的方法时,有什么建议或需要避免的坑?

A

正确使用super()和避免重复调用

调用父类方法建议使用super(),特别是涉及多继承时,super()会自动找到正确的方法解析顺序(MRO)。避免直接通过父类名调用方法,因为这可能导致多继承情况下的调用错误。另外,避免在子类中重复调用父类方法造成逻辑混乱。