如何查找变量中的字节数?

San*_*mar 1 python

可能重复:
如何确定Python中对象的大小?

在C,如果我这样做

USHORT x;
ULONG y;
ULONGLONG yy;

printf("%d %d %d\n", sizeof(x), sizeof(y), sizeof(yy))
Run Code Online (Sandbox Code Playgroud)

输出:2 4 8

如果我这样做,我怎么能用Python得到它

valByte = 0x16
valWord = 0x1234
valDWord = 0x12345678
val64Word = 0x1234567887654321
Run Code Online (Sandbox Code Playgroud)

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

谢谢

unu*_*tbu 5

在Python3中有bit_length方法:

>>> 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
Run Code Online (Sandbox Code Playgroud)

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

>>> (10**20).bit_length()
67

>>> x = 123
>>> long(x).bit_length()
7
Run Code Online (Sandbox Code Playgroud)