我有这样一节课:
class C(object):
a = 5
def __iadd__(self, other):
self.a += other
我希望能够做到:
b = C()
b += 7
和b相同,但是在b.a中加了7。但是,如果我真的运行这个,它会把b变成一个非类型的对象。我想这是因为C.。\u iadd\u没有返回任何东西。你知道吗
我是否必须让C.。\u iadd\u返回一份带有self.a的self副本?有没有一种方法可以在不复制整个对象并返回它的情况下实现这种添加?你知道吗
Tags:
您忘记从
__iadd__
方法返回self
:从^{} documentation :
如果没有显式的return语句,函数返回
None
作为默认值,因此b += 7
生成None
,这是赋值的结果。你知道吗相关问题 更多 >
编程相关推荐