在Python 2.7中,当我想在其上调用方法时,为什么我必须在括号中包含`int`?

时间:2013-11-22 08:51:52

标签: python

在Python 2.7中,当我想在其上调用方法时,为什么必须在括号中附加int

>>> 5.bit_length()
SyntaxError: invalid syntax
>>> (5).bit_length()
3

2 个答案:

答案 0 :(得分:7)

这是一个解析器的特质。

当Python看到.时,它开始寻找小数。您的小数是b,因此失败。

如果您执行(5).bit_length(),那么Python将首先解析()之间的内容,然后查找{ {1}}方法。


如果您尝试:

bit_length

您将获得您期望的5..zzz 。但这对整数不起作用:AttributeError是浮点数。

答案 1 :(得分:4)

因为5.something将被解析为浮点数。