这是我的代码:
In [2]: a = 11111111111111111111111111
In [3]: a = (int)(a)
In [4]: type(a)
Out[4]: long
In [5]: a = int(a)
In [6]: type(a)
Out[6]: long
为什么,在我调用之后int
,a
它的类型仍然是long
而不是int
?
从文档:
类 int(x=0)
类 int(x, base=10)[...] 如果参数超出整数范围,则该函数将返回一个 long 对象。
在PEP 237中,int 和 long 大多是统一的。这两种类型之间几乎没有区别,python 在必要时会自动将大数字转换为长整数。另请参阅Python 如何管理 int 和 long?.