为什么最后一个方法调用失败?括号在这做什么? 我知道一切都是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
答案 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.
启动了一个文字浮点数。