为什么围绕一个整数需要括号来调用它上面的方法?

Lon*_*ner 4 python syntax

这不起作用.

>>> 10.__str__()
  File "<stdin>", line 1
    10.__str__()
             ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

但这很有效.

>>> (10).__str__()
'10'
Run Code Online (Sandbox Code Playgroud)

为什么围绕整数需要括号才能调用其方法?列表或其他数据类型似乎不需要它.

>>> [1, 2].__str__()
'[1, 2]'
>>> {'a': 'foo'}.__str__()
"{'a': 'foo'}"
Run Code Online (Sandbox Code Playgroud)

wog*_*and 7

根据python文档,数字文字需要括号,否则不清楚是否.表示浮点数或方法调用.

例如,要在整数上调用方法:

(10).__str__()
Run Code Online (Sandbox Code Playgroud)

但不是

10.__str__()
Run Code Online (Sandbox Code Playgroud)

而在浮点数上调用方法:

(10.).__str__()
Run Code Online (Sandbox Code Playgroud)

要么

10..__str__()
Run Code Online (Sandbox Code Playgroud)

两者都有效,因为第一个.只能是浮点指示符,因为它后跟一个.调用方法.