2009-11-24 5 views

Répondre

30

Vous pouvez trouver la fonctionnalité que vous recherchez here (dans sys.getsizeof - Python 2.6 et versions ultérieures).

En outre: ne pas ombre le int intégré!

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

est-il vraiment donner la taille de Myint il retourne 14, pour autant que je sache int prendre 4 octets, je pense que son retour de la taille de l'objet entier, puis-je savoir que la taille de seulement « INT » – itsaboutcode

+2

À partir des docs: 'getsizeof' appelle la méthode' __sizeof__' de l'objet et ajoute une surcharge supplémentaire de garbage collector si l'objet est géré par le garbage collector. –

+7

itsaboutcode: Voulez-vous quitter le domaine Python? A quelle question voulez-vous vraiment répondre? Si vous voulez 4 comme réponse, alors 'def sizeof (o): return 4'. – u0b34a0f6ae

2

Vous pouvez également jeter un oeil à Pympler, en particulier son module asizeof, qui contrairement à sys.getsizeof fonctionne avec Python> = 2.2.

8

si vous voulez connaître la taille de int, vous pouvez utiliser struct

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

autrement, comme d'autres déjà souligné, utilisez getsizeof (2.6). il y a aussi un recipe, vous pouvez essayer.

2

Numpy offre une infrastructure pour contrôler la taille des données. Voici des exemples (AP3):

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 

C'est super utile lorsque vous essayez de soumettre des données à la carte graphique avec pyopengl, par exemple.

0

En Python 3, vous pouvez utiliser sys.getsizeof().

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