Python语法解释需要

时间:2014-06-08 07:05:20

标签: python python-2.7

为什么最后一个方法调用失败?括号在这做什么? 我知道一切都是Python中的对象,但我只想更好地了解它。

$ python2.7
...
>>> (1).__add__(2)
3
>>> 1 .__add__(2)
3
>>> 1..__add__(2)
3.0
>>> 1.__add__(2)
  File "<stdin>", line 1
    1.__add__(2)
            ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:3)

号码

1. 

被视为float。这就是

的原因
1..__add__(2)

返回3.0而非3。当你这样做

1.__add__(2)

就像你做的那样

1.0__add__(2)

这是无效的语法。

括号在这里做了什么?在这种情况下,它们用于避免Python将.与来自__add__的调用中的点1.0混淆{{1}}。

答案 1 :(得分:1)

因为1.启动了一个文字浮点数。