import sys
print(sys.getsizeof(4))
print(sys.getsizeof(int))
print(sys.getsizeof(int()))
Когда я пытаюсь запустить вышеуказанный код, он отображает следующий вывод
28
400
24
Но так как все данные внутри скобки являются int, так как это дает разные выходные данные. Может кто-нибудь объяснить?
Первые два отличаются от очевидных:
>>> type(4)
<class 'int'>
>>> type(int)
<class 'type'>
3D отличается от первого из-за оптимизации целого пространства - чем больше бит вам нужно, тем больше пространства Python потребует в прыжках 4 - 0 минимально, и вы поднимаетесь оттуда:
>>> getsizeof(0)
24
>>> getsizeof(32984732)
28
>>> getsizeof(3298473232432432432)
36
на самом деле даже 1
требуется больше места, чем 0
так как следующий шаг размера.