當添加一個整數值到一個浮點值,我意識到__add__
方法是工作正常,如果稱爲上浮動,如這樣的:的Python:__add__和+,不同的行爲與浮子和整數
>>> n = 2.0
>>> m = 1
>>> n.__add__(m)
3.0
但如果不要求的整數:
>>> m.__add__(n)
NotImplemented
起初我認爲__add__
只是被實施爲不同和int
float
類型(如浮動類型接受要被添加到int類型的,但不是相反)。然後我注意到,如果我使用+運算符,一切都可以正常工作:
>>> n + m
3.0
>>> m + n
3.0
有人知道爲什麼會發生這種情況嗎? __add__
和+
彼此之間沒有很深的關係嗎?
'NotImplemented'也返回'm .__ radd __(n)' –
@ this-vidor:錯誤的__radd__'方法在那裏。 – user2357112
@ user2357112正確!那就是解決方案。 –