Python中查看变量的类型,内存地址,所占字节的大小
阅读原文时间:2023年07月08日阅读:2

#利用内置type()函数

nfc=["Packers","49"]
afc=["Ravens","48"]
combine=zip(nfc,afc)
type(combine)

#利用内置函数id(),是以十进制显示

id(nfc)
2646554913160
id(afc)
2646554913544

>>> import sys

print(sys.getsizeof(combine))
64
print(sys.getsizeof(nfc))
80
print(sys.getsizeof(afc))
80

查看变量所占内存时和自己所想的完全不一样,上面可能不注意的话不会发现

上面s赋值的时一个字符,有c/c++语言基础的应该知道一个字符变量占1个字节,这里怎么会变成50个字节了呢?别急再往下看

s变量的赋值编程了‘Aa’两个字符,输出结果变成了51,比上面正好增加了一个字节,而我们也只是对s变量的赋值多了一个a字符,你要不信邪在添加一个字符试一试

这里添加了一个字符1,注意时字符不是数值型的1,看内存有增加了一个字节

更有意思的是下面

这里s是一个空字符串却比有字符是所占内存还多
这是为什么呢,为什么造成这种情况?应该是和python一切都是对象有关,s是str类的对象,而s变成str类的对象时就已经开辟了一部分内存不管有没有值,这也时为什么s没有赋值就有51字节的内存,在之后每增加一个字符就会多一个字节(除刚开始以外)