Как найти количество байтов, полученных переменной python

В любом случае я могу узнать, сколько байтов принимается конкретной переменной в python. Например; скажем, у меня есть

int = 12
print (type(int))

он напечатает

<class 'int'> 

Но я хотел знать, сколько байтов оно взяло на память? возможно ли это?

Ответы

Ответ 1

Вы можете найти функциональность, которую вы ищете здесьsys.getsizeof - Python 2.6 и выше).

Также: не затушевывайте int builtin!

import sys
myint = 12
print sys.getsizeof(myint)

Ответ 2

если вы хотите узнать размер int, вы можете использовать struct

>>> import struct
>>> struct.calcsize("i")
4

в противном случае, как уже указывали другие, используйте getizeof (2.6). есть также recipe, который вы можете попробовать.

Ответ 3

В Python >= 2.6 вы можете использовать sys.getsizeof.

Ответ 4

Вы также можете посмотреть Pympler, особенно его asizeof, который в отличие от sys.getsizeof работает с Python >= 2.2.

Ответ 5

в командной строке python, вы можете использовать размер функции

   $ import python 
    $ import ctypes
    $ ctypes.sizeof(ctypes.c_int)

и больше узнать об этом от https://docs.python.org/2/library/ctypes.html

Ответ 6

Numpy предлагает инфраструктуру для управления размером данных. Вот примеры (py3):

import numpy as np
x = np.float32(0)
print(x.nbytes) # 4
a = np.zeros((15, 15), np.int64)
print(a.nbytes) # 15 * 15 * 8 = 1800

Это очень полезно при попытке отправить данные на графическую карту с помощью pyopengl, например.

Ответ 7

В Python 3 вы можете использовать sys.getsizeof().

import sys
myint = 12
print(sys.getsizeof(myint))