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

Python方法重写疑问:为何父类return值未输出?

解决子类继承后同时输出父类与子类方法结果的问题

原代码的问题点:

  • Add类的result方法没有正确计算并返回加法结果,字符串格式也不符合期望
  • 子类multi的result方法定义缺少冒号:,属于语法错误
  • 调用父类方法super().result(1,2)时,仅执行了方法但未接收返回值,也没有输出
  • 期望输出里的multyply是拼写错误,正确应为multiply

修改后的代码:

class Add:
    def result(self, x, y):
        # 计算x+y并返回格式化字符串
        return f"add: {x + y}"

class multi(Add):
    def result(self, a, b):
        p = a * b
        # 获取父类方法的返回值
        add_output = super().result(a, b)
        # 打印父类的计算结果
        print(add_output)
        # 返回子类的乘法结果,外部调用时打印
        return f"multiply: {p}"

x = multi() 
print(x.result(2, 3)) 

运行输出:

add: 5
multiply:6

如果你的需求是父类固定计算1+2得到3,只需要把子类里的super().result(a, b)改成super().result(1, 2)即可,输出就会变成:

add: 3
multiply:6

关于return的疑问解答:

父类方法的return确实返回了值,但你在子类里调用super().result(...)时,没有把返回值存到变量里,也没有打印,所以自然看不到。必须接收这个返回值并处理(比如打印),才能输出父类的结果。

内容的提问来源于stack exchange,提问作者Mohit Mishra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:50:24