-
首先我们要知道在内存中创建对象后,如果有变量使用它,实际是把对象的引用赋值给变量。
a = 100, # 执行代码时100已经创建好,把100的内存地址赋值给a
del a,# 删除a后把引用断掉,100没有变量去引用它后,系统嫌它占资源,会被回收销毁(这里我们不考虑其他变量还引用100). -
我们可以想想写代码的时候整数是不是使用挺频繁;所以python为了优化速度,创建了小整数池对象,提前缓存一些整数,避免为整数频繁的申请和销毁内存空间。
小整数对象池
- 定义[-5,257) 不包括257,这些整数对象提前建好,不会被垃圾回收,调用时都会调用同一个对象。
- 在测试的时候最好在python的IDE集成开发环境中测试
在我们运行代码的时候也创建了大整数池。
大整数对象池:
- 简单来说就是在一个代码块里面的大整数属于一个对象,比如在pycharm中,每次运行是所有代码都加载都内存中,属于一个整体,所以 这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。
- 代码块可以是一个py文件里的变量、函数、类。