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

Python自定义复数类__str__方法返回NoneType报错原因及修复问询

报错触发原因

Python 规定类的__str__特殊方法必须返回字符串类型的值,你当前实现的__str__方法仅对结果变量result完成了赋值操作,没有显式添加返回语句。Python中所有无显式return的函数/方法,默认返回值为None,当外部调用str(Complex类实例)时系统预期拿到字符串,实际拿到的None不符合类型要求,就会触发该类型错误。

可行修复方案

只需要在__str__方法的所有条件分支结束后,添加一行返回result的语句即可,修改后的__str__方法代码如下:

def __str__(self):
    if self.imaginary == 0:
        result = "%.2f+0.00i" % (self.real)
    elif self.real == 0:
        if self.imaginary >= 0:
            result = "0.00+%.2fi" % (self.imaginary)
        else:
            result = "0.00-%.2fi" % (abs(self.imaginary))
    elif self.imaginary > 0:
        result = "%.2f+%.2fi" % (self.real, self.imaginary)
    else:
        result = "%.2f-%.2fi" % (self.real, abs(self.imaginary))
    # 新增返回语句
    return result

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:00:03