由于一切都是python中的对象,甚至是文字,我们通常被允许直接在文字上调用方法.
例如:
'hello'.upper()
Run Code Online (Sandbox Code Playgroud)
从理论上讲,对于int literals来说,似乎应该允许同样的事情
例如:
4.bit_length()
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,我不知道为什么.有任何想法吗?谢谢!
在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)
为什么不?