Ign*_*nka 3 python integer add
我总是在Python(3.5)中使用"+"运算符调用引擎下的__add__方法并返回总和.但是,当涉及负数时,我注意到一些古怪的行为.自然,
>>>-3 + 7
Run Code Online (Sandbox Code Playgroud)
返回4
但(!)
>>>-3 .__add__(7)
Run Code Online (Sandbox Code Playgroud)
返回-10和
>>>-3 .__add__(-7)
4
>>>3 .__add__(7)
10
Run Code Online (Sandbox Code Playgroud)
如果对象被签名,是否有__add__签署参数的原因.此外,该方法有什么变化,以便当我使用"+"时,"正确"值出现?
-也是一个运营商,一个单一的运营商.你叫__add__上3,而不是结果-应用到3,因为属性访问绑定比更紧密地-操作.
使用括号:
>>> (-3).__add__(7)
4
Run Code Online (Sandbox Code Playgroud)
您的代码将-一元运算符应用于结果3 + 7.