说我想要为我创建的某个类重载一个运算符(现在就说+
)
class A (object):
#code here
然后:
a = A()
b = A()
我该怎么做才能定义:
c = a + b
或沿着这些方向的东西? (注意:这个问题纯粹是理论上的,我可能会在某个时候使用它,但目前还没有(除非它非常简单,我真的需要使用它))
(p.s。如果可以对and
,or
,not
,str
,e.t.c等其他内容执行此操作。
答案 0 :(得分:3)
由于A
是二元运算符的第一个操作数,因此您应该定义A.__add__()
。如果A
是第二个操作数,并且无法更改第一个操作数的类,则必须定义A.__radd__()
。