考慮我的課mint
當類實例在右邊時,如何讓我的類控制添加操作?
class mint(object):
def __init__(self, i):
self.i = i
def __add__(self, other):
o = other.i if isinstance(other, mint) else other
return mint(1 + self.i + o)
def __repr__(self):
return str(self.i)
它的設計做了另一種添加。
a = mint(1)
a + 1 + 2
6
但是,添加雖然我的對象是在右側不起作用。
1 + a
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-519-8da568c0620a> in <module>() ----> 1 1 + a
TypeError: unsupported operand type(s) for +: 'int' and 'mint'
問:如何修改我的課,使得1 + a
是否行得通呢?
http://stackoverflow.com/a/5082229/6394138 – Leon
除了如以下所示,也考慮執行['.__ iadd__']實施'.__ radd__'( https://docs.python.org/3.5/reference/datamodel.html#object.__iadd__)。 –
冒險在'熊貓'之外,我明白了。 –