可能重复:
accessing a python int literals methods
Integer literal is an object in Python?
在python中,调用方法或直接在文字上查找属性是可能的,有时甚至是常见的:
>>> "-".join("abc")
'a-b-c'
>>> {1: 3, 2: 9}.pop(1)
3
>>> 3j.imag
3.0
>>> 8.0.__add__(8)
16.0
但由于某种原因,这不适用于整数对象:
>>> 3.__add__(42)
File "<stdin>", line 1
3.__add__(42)
^
SyntaxError: invalid syntax
为什么不呢?
答案 0 :(得分:8)
通常情况下,当我开始输入Stack Overflow问题时,我会在我研究它时找到可能的答案。那么,今天我发布了这个问题,以及我认为的答案:
它不适用于整数,因为解析器将.
解释为小数点。 float示例有效,因为解析器知道第二个句点必须是属性查找 - 在这种情况下没有歧义。