Python 自添加后,对象变为无。。。?

Python 自添加后,对象变为无。。。?,python,python-3.x,operator-overloading,Python,Python 3.x,Operator Overloading,尝试以下简单代码(MCVE): 输出是 before iadd v = 3 after iadd v = 8 Now a is None 我想a+=b应该适当地修改a(这就是我在Foo.\uuu iadd\uuu()中写的内容)。这让我困惑了很长时间。我希望最后一行应该是 Now a is Foo.__repr__(8) 因为在\uuuidd\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu方法中没有返回任何内容。请尝试返回自我。定义添加(self,othe

尝试以下简单代码(MCVE):

输出是

before iadd v = 3
after iadd v = 8
Now a is None
我想
a+=b
应该适当地修改
a
(这就是我在
Foo.\uuu iadd\uuu()
中写的内容)。这让我困惑了很长时间。我希望最后一行应该是

Now a is Foo.__repr__(8)

因为在
\uuuidd\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu方法中没有返回任何内容。请尝试返回自我。

定义添加(self,other):返回Foo(self.v+other.v)
这不是一个返回吗?@iBug:错误的方法。@iBug对iadd方法执行此操作,但是,不应该在适当的位置修改对象吗?@iBug执行此操作。但它使用返回的值修改现有值。由于您不返回任何值,结果将变为无。
定义添加(self,other):返回Foo(self.v+other.v)
这不是一个返回吗?@iBug:错误的方法。@iBug对iadd方法执行此操作,但是,
\uuIdd\uUu
不应该就地修改对象吗?@iBug执行此操作。但它使用返回的值修改现有值。因为您不返回任何内容,所以结果变为无。
Now a is Foo.__repr__(8)