自纪元以来的当前毫秒数1395245378429
;在unix(64位/ Ubuntu / python 2.7)上,你可以这样做:
>>> t = 1395245378429
>>> type(t)
<type 'int'>
>>> t = 1395245378429L
>>> type(t)
<type 'long'>
>>> int(t)
1395245378429
>>> type(int(t)
<type 'int'>
但在Windows(也是64位/ python 2.7)上,会发生这种情况:
>>> t = 1395245378429
>>> type(t)
<type 'long'>
>>> int(t)
1395245378429L
>>> type(int(t))
<type 'long'>
所以,以下奇怪的观察结果:
int(<long>)
返回长我无法在文档中看到任何明显的信息,说这是正确的行为;有没有(正确的)方法将long转换为int(即所以它可以在需要int参数的方法中使用)
答案 0 :(得分:5)
Python使用C long
作为int
类型,甚至在Windows上也限制为32位。您可以通过查看sys.maxint
value来查看您平台当前的最大原始int
尺寸:
Python常规整数类型支持的最大正整数。这至少是2 ** 31-1。最大的负整数是
-maxint-1
- 使用2的补码二进制算法产生不对称性。
普通整数(也称为整数)是使用C中的
long
实现的,它给出了至少32位的精度(sys.maxint
总是设置为当前平台的最大纯整数值,最小值为-sys.maxint - 1
)。
除非您直接与不支持Python long
类型的C扩展库进行交互,否则无需担心Python何时使用int
以及何时需要使用long
。在Python 3中,单独的long
类型已被完全删除。