You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何模拟类型转换实现子类对象调用父类方法?

在Python中调用被子类覆盖的父类方法

注:此问题为重复问题,另一线程中有补充解答;因原标题未准确体现需求,已修改原标题为《Python中调用基类方法》(原标题:Python中子类转父类的等效方法)。

你说得对,Python确实没有类似Java里那种强制类型转换来调用父类方法的语法,但我们有几种简单的等效方式来实现你想要的效果——调用被子类覆盖的父类方法。

先把你的示例类结构写清楚,方便后续演示:

class sup:
    def method(self):
        print("This is the parent class method")

class sub(sup):
    def method(self):
        print("This is the child class method")

假设我们创建了一个子类实例:

obj = sub()

方法一:直接通过父类名调用方法并传入子类实例

这是最直接的方式,Python的类方法本质上是绑定到类的函数,第一个参数self需要我们手动传入实例对象。所以你可以直接用父类名调用目标方法,把子类实例传进去:

sup.method(obj)  # 输出:This is the parent class method

方法二:在子类内部使用super()函数(适合子类方法内调用)

如果是在子类的方法内部想要调用父类的同名方法,Python提供了super()函数来简化这个操作,它会返回父类的代理对象,通过这个对象就能调用父类的方法:

class sub(sup):
    def method(self):
        print("This is the child class method")
        # 调用父类的method方法
        super().method()

obj = sub()
obj.method()
# 输出:
# This is the child class method
# This is the parent class method

这两种方式都能达到你想要的“调用父类method而非子类method”的效果,完全替代Java里强制类型转换的思路。

内容的提问来源于stack exchange,提问作者Ilab Sentuser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 11:32:56