Python 3.x 在python中,为什么int数据类型的大小大于float?

Python 3.x 在python中,为什么int数据类型的大小大于float?,python-3.x,Python 3.x,我使用的是Python3.7.1,当我检查int与float的大小时,我感到困惑 from os import getsizeof a = 5 b = 5.0 print(getsizeof(a)) >> 28 print(getsizeof(b)) >> 24 所以int的大小比float的大。为什么python对这些类型有如此奇怪的大小?python的“int”不是一个简单的32或64位值,而是一个可以容纳任意大数字的类。这就是为什么它比4或8大得多 相同的参数对

我使用的是Python3.7.1,当我检查int与float的大小时,我感到困惑

from os import getsizeof
a = 5
b = 5.0

print(getsizeof(a))
>> 28
print(getsizeof(b))
>> 24

所以int的大小比float的大。为什么python对这些类型有如此奇怪的大小?

python的“int”不是一个简单的32或64位值,而是一个可以容纳任意大数字的类。这就是为什么它比4或8大得多

相同的参数对float有效


大小不同的原因是一个实现细节(并且可以更改,例如当数字变大时)。

在python中,当值初始化为变量时,它将成为该值的对象。对象的大小没有界限。对象的大小,即变量的大小可以是计算机中RAM的大小。这意味着该大小不受限制为默认值。它可以是int或float。比如说,

>>>a=0xFFFFFFFFFFFFFFFFFFFFFFFFFFF
>>> type(a)
<class 'int'>
>>>sys.getsizeof(a)
40
>>a=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
>>>类型(a)
>>>sys.getsizeof(a)
40