我希望能夠讓我的類的運算符以我定義的方式與常規類型進行交互。比方說,例如,我有: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