我希望能够让我的类的运算符以我定义的方式与常规类型进行交互。比方说,例如,我有:Python:运算符重载特定类型
class Mynum(object):
def __init__(self, x):
self.x = x
def __add__(self, other):
return self.x + other.x
a = Mynum(1)
b = Mynum(2)
print a+b
这只是正常的,但现在,如果我尝试做:
print a+2
我得到,因为一个int
错误没有一个成员名为x
。如何在课堂上定义Mynum
+ int
?这听起来像是装饰者或元类的工作,但我对他们的用法非常陌生。 This question似乎相似,但不完全相同。
检查“x”属性的类型或“其他”或存在。 – SilentGhost 2010-07-06 17:32:15
不要忘了: '__radd__' ='__add__' (即使它不能解决您的问题) – jcao219 2010-07-06 17:35:51