在Python 2.7中,当我想在int
上调用方法时,为什么必须将其括在括号中?
>>> 5.bit_length()
SyntaxError: invalid syntax
>>> (5).bit_length()
3
这是一个解析器特性。
当Python看到.
时,它开始寻找小数。您的小数是b
,因此失败。
如果执行(5).bit_length()
,Python将首先解析()
和之间的内容,然后查找bit_length
方法。
如果你尝试:
5..zzz
你会得到你期望的AttributeError
。不过,这对整数不起作用:5.
是一个浮点值。
因为5.something
将被解析为浮点数。