Python考点
一、Python内存管理机制
1、GC
- 为新生成的对象分配内存;
- 识别那些垃圾对象;
- 从垃圾对象那回收内存;
2、GC算法
- python采用的是引用计数机制为主,标记-清除和分代收集两种机制为辅的策略;
- 引用计数机制的优点:
(2)实时性:一旦没有引用,内存就直接释放了。不用像其他机制等到特定时机。实时性还带来一个好处:处理回收内存的时机分摊到了平时;
- 引用计数机制的缺点:
(2)循环引用可能导致内存泄露;(比如:对象A包含对象B,对象B又包含对象A)
- 引用计数+1的场景:
(2)对象被引用,比如b=a;
(3)对象被作为参数,传入到一个函数中,比如func(a);
(4)对象被作为一个元素,存储在容器中,例如list1=[a, a];
- 引用计数-1的场景:
(2)对象的别名被赋予新的对象,比如a=24;
(3)一个对象离开它的作用域,比如f函数执行完毕时,func函数中的局部变量(全部变量不会);
(4)对象所在的容器被销毁,或从容器中删除对象;