0
我想編寫一個模擬數字數據類型的類。我的新類型提供了__add__
和__radd__
方法。添加這種類型的對象,如a+b
工作正常,還有a+1
工程。爲什麼int引發TypeError而不是NotImplemented?
我的問題是,當我嘗試使用1+a
的int
add函數被調用這引起了一個TypeError,使翻譯停止,並且不試圖打電話給我__radd__
這是可行的。
python doc指出「如果其中一種方法[即__add__
和__radd__
]不支持使用所提供參數的操作,則應返回NotImplemented」。爲什麼int
沒有提升NotImplemented?有沒有辦法解決這個問題,而不是讓我的類成爲int的子類?
是的,你是對的。這在python3中有效。我剛剛發現,這不適用於python3的ipython!這意味着我的問題是由ipython引起的。 – sauerburger