内存管理
对象池
小整数对象池:
在一个程序中,[-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))