关于python:如何查找变量中的字节数?

How to find number of bytes in a variable?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I determine the size of an object in Python?

如果我在C

1
2
3
4
5
6
USHORT x;
ULONG y;
ULONGLONG yy;

printf("%d %d %d
"
, sizeof(x), sizeof(y), sizeof(yy))

产量:2 4 4

如果我要在python中得到这个

1
2
3
4
valByte = 0x16
valWord = 0x1234
valDWord = 0x12345678
val64Word = 0x1234567887654321

我期望的输出应该是1、2、4、8

谢谢


python3中有位长度法:

1
2
3
4
5
6
7
8
9
10
>>> import math

>>> math.ceil(0x16.bit_length()/8)
1
>>> math.ceil(0x1234.bit_length()/8)
2
>>> math.ceil(0x12345678.bit_length()/8)
4
>>> math.ceil(0x1234567887654321.bit_length()/8)
8

在python2.7中,long整数也有bit_length方法:

1
2
3
4
5
6
>>> (10**20).bit_length()
67

>>> x = 123
>>> long(x).bit_length()
7


您可以使用sys.getsizeof,但结果可能会很烦人,因为整数可以是最小值。

例如,在我的64位PC中,所有变量的大小都是24字节。