这不起作用。
>>> 10.__str__()
File "<stdin>", line 1
10.__str__()
^
SyntaxError: invalid syntax
但这很有效。
>>> (10).__str__()
'10'
为什么围绕整数需要括号才能调用其方法?列表或其他数据类型似乎并不需要它。
>>> [1, 2].__str__()
'[1, 2]'
>>> {'a': 'foo'}.__str__()
"{'a': 'foo'}"
答案 0 :(得分:7)
根据python documentation,数字文字需要括号,否则不清楚.
是否表示浮点数或方法调用。
例如,要对整数调用方法:
(10).__str__()
但不是
10.__str__()
然后在浮点数上调用方法:
(10.).__str__()
或
10..__str__()
两者都有效,因为第一个.
只能是一个浮点指示符,因为后面跟着.
调用该方法。