重写__add__方法后出现TypeError

重写__add__方法后出现TypeError,第1张

重写__add__方法后出现TypeError

您还需要定义

__radd__
才能使它起作用。

__radd__
反向添加 。当Python尝试评估时,
x +y
它首先尝试调用
x.__add__(y)
。如果失败,则返回到
y.__radd__(x)

这样,您仅需触摸一个班级即可覆盖加法。例如,考虑Python如何评估

0 +x
0.__add__(x)
尝试进行呼叫,但
int
对您的课程一无所知。您无法很好地更改
__add__
方法
int
,因此需要
__radd__
。我想这是依赖倒置的一种形式。

正如Steven所指出的那样,它

sum
在原地运行,但从0开始。因此,第一个加法是唯一需要使用的
__radd__
。作为一项不错的练习,您可以检查是否是这种情况!



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5646695.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存