int
?
>>> 5.bit_length()
SyntaxError: invalid syntax
>>> (5).bit_length()
3
答案 0 :(得分:7)
这是一个解析器的特质。
当Python看到.
时,它开始寻找小数。您的小数是b
,因此失败。
如果您执行(5).bit_length()
,那么Python将首先解析()
和之间的内容,然后查找{ {1}}方法。
如果您尝试:
bit_length
您将获得您期望的5..zzz
。但这对整数不起作用:AttributeError
是浮点数。
答案 1 :(得分:4)
因为5.something
将被解析为浮点数。