Python父类函数如何调用子类的方法

Python父类函数如何调用子类的方法

作者:Joshua Lee发布时间:2026-01-14阅读时长:0 分钟阅读次数:6

用户关注问题

Q
在Python中,父类如何访问子类特有的方法?

我在使用Python编程时,想知道父类的函数是否可以调用子类中定义的方法,并且这种调用的实现方式是什么?

A

父类函数调用子类方法的实现方式

在Python中,父类的方法如果调用了通过子类实例访问的函数,那么父类实际上调用的就是子类重写或新增的方法。这是由于Python的动态绑定机制,父类中的方法通过self参数调用时,会执行子类中对应的方法实现。这意味着只要子类继承了父类并重写了某个方法,父类通过self调用将自动使用子类的版本。

Q
Python中如何确保父类调用的是子类的特定方法实现?

当父类方法中调用某个函数时,如何做到确保执行的是子类重写的版本而不是父类的?

A

利用子类实例调用实现多态行为

在面向对象编程中,创建子类实例后,当父类方法通过self调用其他方法时,Python会先在子类中查找该方法的实现,如果子类有对应的方法,则执行子类的方法,体现出多态特性。使用子类实例调用父类函数,能够保证执行的是子类重写的方法。

Q
有什么示例代码可以展示父类函数调用子类方法的过程?

能否提供一个简单的代码示例,说明在Python中父类的方法如何调用子类重写的方法?

A

示例代码展示父类调用子类方法

例如定义父类A和子类B,父类中有一个方法调用了self.other_method(),而子类B重写了other_method。运行子类实例调用父类方法时,就会执行子类的other_method实现。示例代码如下:

class A:
    def func(self):
        print('执行父类的func')
        self.other_method()

    def other_method(self):
        print('父类的other_method')

class B(A):
    def other_method(self):
        print('子类重写的other_method')

b = B()
b.func()

输出结果为:
执行父类的func
子类重写的other_method