Gia*_*ani 5 python floating-point integer add
将整数值添加到浮点值时,我意识到__add__如果在float上调用该方法工作正常,例如:
>>> n = 2.0
>>> m = 1
>>> n.__add__(m)
3.0
Run Code Online (Sandbox Code Playgroud)
但如果调用整数则不会:
>>> m.__add__(n)
NotImplemented
Run Code Online (Sandbox Code Playgroud)
起初我认为__add__只是以不同的方式实现int和float类型(比如浮点类型接受添加到int类型,但不是相反).然后我注意到如果我使用+运算符,一切正常:
>>> n + m
3.0
>>> m + n
3.0
Run Code Online (Sandbox Code Playgroud)
有人知道为什么会这样吗?是__add__和+彼此没有很深的关系?
a + b没有直接翻译成a.__add__(b).b.__radd__(a)如果a.__add__不存在或返回它NotImplemented,或者如果b是a's类型的子类型的实例,它也会尝试.
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |