我一直在寻找一个明确的答案,但最接近的结果是在python文档here中。它说:
这些[增强的算术赋值]方法应尝试就地进行操作(修改self)并返回结果(可以是,但不一定是self)。
这暗示自身(和类型)没有变化,但是实际上由类开发人员确定还是应该尝试始终保持类型?
我知道应该是一个意见问题。我正在寻找的是对预期结果有更好记录的证据。
参加下面的课程NumString
。
class NumString:
"""A class where the number is represented as a string.
other methods omitted for brevity.
"""
def __init__(self, value):
self.value = str(value)
def __str__(self):
return self.value
def __int__(self):
return int(self.value))
def __add__(self, other):
if '.' in self.value:
return float(self) + other
return int(self) + other
def __iadd__(self, other):
self.value = str(self + other)
return self