Python 中的内存 & 垃圾回收机制
一、内存
- 用于存储 python 中的对象
- 存储的内容:对象的存储的位置( id )、对象的类型( type )、对象的值( value )
二、垃圾回收机制
Python垃圾回收主要以引用计数为主,分代回收为辅。
1. 引用计数
原理:每个对象都会有一个引用计数器,用于计算指向这个对象的引用。
(1)引用计数器 +1 的四种情况
- 对象被创建。 eg: a = 14
- 对象被引用。 eg: b = a
- 对象被用作函数的参数。 eg: func(a)
- 对象被用作容器的元素。 eg: List = [ a, “a”, “b”, 2 ]
(2)引用计数器 -1 的四种情况
- 对象别名被显式销毁。 eg: del a
- 对象的引用被赋予新的对象。 eg: b = 26
- 对象离开它的作用域后。(全局变量除外)
- 元素从容器中被销毁,或容器被销毁。