繁体   English   中英

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

[英]in Python 2.7, why do I have to enclose an `int` in brackets when I want to call a method on it?

在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将被解析为浮点数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM