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

Python重写__add__方法遇TypeError错误,求助排查(新手类问题)

问题排查:自定义Point类加法运算报错

你遇到的这个TypeError问题其实是个很容易犯的小错误,马上就能解决!

核心原因

Python里用于重载加法运算符的魔法方法是__add__(前后各两个下划线),但你代码里写的是_add_(前后各一个下划线)——就是这个命名错误,让Python无法识别你定义的加法逻辑,所以才会提示“不支持Point类型的+运算”。

修正后的完整代码

只需要把方法名改成正确的__add__就可以正常运行了:

from math import sqrt
class Point(object):
    def __init__(self,x,y,z):
        self.x = x
        self.y = y
        self.z = z
    def __str__(self):
        return "%i,%i,%i"%(self.x, self.y, self.z)
    def __add__(self, other):
        TotalX = self.x + other.x
        TotalY = self.y + other.y
        TotalZ = self.z + other.z
        return Point(TotalX, TotalY, TotalZ)

测试验证

现在你可以试试这段代码:

Point1 = Point(1,2,3)
Point2 = Point(4,5,6)
Point3 = Point1 + Point2
print(Point3)  # 会输出 5,6,9

最后给你个小提醒:作为Python类的初学者,记得所有魔法方法(比如__init__、__str__这类)都是前后各两个下划线的命名规则,记清楚这个就能避免很多类似的低级错误啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:14:32