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

如何实现class C实例化时返回数组求和表达式?__init__无法返回值求解

解决方法

你需要重写类的__str__方法来定义对象的文本表示,而不是在__init__里返回值——__init__是构造函数,只能返回None,不能返回其他值。另外你的原代码里循环拼接字符串时会多一个多余的+,也可以用更简洁的方式实现。

修正后的代码

class C():
    def __init__(self, array):
        self.array = array

    def __str__(self):
        # 把数组元素转成字符串并用+连接
        parts = '+'.join(map(str, self.array))
        # 计算总和
        total = sum(self.array)
        # 返回拼接好的表达式
        return f"{parts}={total}"

说明

  1. __str__方法:当你打印对象(print(C([5,12])))或者把对象转为字符串(str(C([5,12])))时,Python会自动调用这个方法,返回的字符串就是对象的文本表示。
  2. 简化拼接与求和:
    • '+'.join(map(str, self.array)):把数组里的每个整数转成字符串,再用+连接成类似"5+12"的格式,避免手动循环的错误。
    • sum(self.array):直接用内置函数计算数组总和,比手动累加更高效简洁。

测试结果

print(C([5, 12]))  # 输出: 5+12=17
print(C([6,0,15])) # 输出: 6+0+15=21
str(C([3,4,5]))    # 返回: "3+4+5=12"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:01:04