как sys.getsizeof () дает другой результат [duplicate]

1
import sys
print(sys.getsizeof(4))
print(sys.getsizeof(int))
print(sys.getsizeof(int()))

Когда я пытаюсь запустить вышеуказанный код, он отображает следующий вывод

28
400
24

Но так как все данные внутри скобки являются int, так как это дает разные выходные данные. Может кто-нибудь объяснить?

Теги:

1 ответ

2

Первые два отличаются от очевидных:

>>> type(4)
<class 'int'>
>>> type(int)
<class 'type'>

3D отличается от первого из-за оптимизации целого пространства - чем больше бит вам нужно, тем больше пространства Python потребует в прыжках 4 - 0 минимально, и вы поднимаетесь оттуда:

>>> getsizeof(0)
24
>>> getsizeof(32984732)
28
>>> getsizeof(3298473232432432432)
36

на самом деле даже 1 требуется больше места, чем 0 так как следующий шаг размера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню