在python中,调用方法或直接在文字上查找属性是可能的,有时甚至是常见的:
>>> "-".join("abc")
'a-b-c'
>>> {1: 3, 2: 9}.pop(1)
3
>>> 3j.imag
3.0
>>> 8.0.__add__(8)
16.0
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,这不适用于整数对象:
>>> 3.__add__(42)
File "<stdin>", line 1
3.__add__(42)
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
为什么不?
通常情况下,当我开始输入Stack Overflow问题时,我会在研究它时找到可能的答案.那么,今天我发布了这个问题,以及我认为的答案:
它不适用于整数,因为.解析器将其解释为小数点.float示例有效,因为解析器知道第二个句点必须是属性查找 - 在这种情况下没有歧义.
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |