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

时间:2016-01-23 02:36:15

标签: python syntax

这不起作用。

>>> 10.__str__()
  File "<stdin>", line 1
    10.__str__()
             ^
SyntaxError: invalid syntax

但这很有效。

>>> (10).__str__()
'10'

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

>>> [1, 2].__str__()
'[1, 2]'
>>> {'a': 'foo'}.__str__()
"{'a': 'foo'}"

1 个答案:

答案 0 :(得分:7)

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

例如,要对整数调用方法:

(10).__str__()

但不是

10.__str__()

然后在浮点数上调用方法:

(10.).__str__()

10..__str__()

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