内存管理

对象池

小整数对象池:

在一个程序中,[-5,256]之间的数字是经常被使用的。因此Python在程序运行过程中,定义好了一个小整数池,也就是说从-5到256之间的数字都是提前在内存中建立好的,不会被系统回收,并且以后你创建了一个变量是在这个范围之内,那么都是同一个对象。同样对于单个字母也是一样的。
示例:

a = 1
b = 1
# 以下两个值是一样的
print(id(a))
print(id(b))
a = -6
b = -6
# 以下两个值是不一样的
print(id(a))
print(id(b))
# 以下两个值是不一样的
a = 257
b = 257
# 以下两个值是不一样的
print(id(a))
print(id(b))

对于只含英文字符的字符串,共用同一个对象:

如果两个字符串的字符都是一样,并且只包含英文字符。那么会共用同一个对象。示例代码如下:

a = "helloworld"
b = "helloworld"
# 以下两个值会相等
print(id(a))
print(id(b))

a = "hello world"
b = "hello world"
# 以下两个值不想等
print(id(a))
print(id(b))

 

posted @ 2021-03-11 00:03  大碗炸酱面  阅读(59)  评论(0编辑  收藏  举报