Python采用基于值的内存管理方式,如果为不同变量赋值为相同值,这个值在内存中只保存一份,多个变量指向同一个值的内存空间首地址,这样可以减少内存空间的占用,提高内存利用率。
Python启动时,会对[-5, 256]区间的整数进行缓存。也就是说,如果多个变量的值相等且介于[-5, 256]区间内,那么这些变量共用同一个值的内存空间。
对于区间[-5, 256]区间之外的整数,同一个程序中或交互模式下同一个语句中的同值不同名变量会共用同一个内存空间,不同程序或交互模式下不同语句不遵守这个约定。例如:
创建程序文件memoryTest.py,编写下面的代码并运行
Python不会对实数进行缓存,交互模式下同值不同名的变量不共用同一个内存空间,同一个程序中的同值不同名变量会共用同一个内存空间。短字符串会共同一个内存空间,而长字符串不遵守这个约定。