4

可能重复:
访问python int 文字方法
整数文字是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

为什么不?

4

1 回答 1

8

通常情况下,当我开始输入 Stack Overflow 问题时,我会在研究时自己找到可能的答案。好吧,今天我无论如何都会发布这个问题,以及我认为的答案:

它不适用于整数,因为.解析器将其解释为小数点。浮点示例有效,因为解析器知道第二个周期必须是属性查找——在这种情况下没有歧义。

于 2012-10-22T12:26:46.427 回答