简单理解python的垃圾回收机制

  关键词:垃圾回收、引用计数、分代回收、标记-清除

  前言:理解python中变量的定义:抽象理解python中变量的定义过程

1、垃圾回收机制的基本组成:

  python采用的是以引用计数为主,以分代回收和标记清除为辅的垃圾回收机制

2、详细分析垃圾回收机制: (1)首先是引用计数:

  在python中,每创建一个对象,那么python解释器会自动为其设置一个特殊的变量,这个变量称为引用计数(初始值默认是1)。一旦有一个新变量指向这个对象,那么这个引用计数的值就会加1。如果引用计数的值为0。那么python解释器的内存管理系统就会自动回收这个对象所占的内存空间,删除掉这个对象。

①引用计数+1的情况:

对象被创建,例如a = "laoliang"

对象被引用,例如b = a

对象被作为参数,传入到一个函数中,例如fun(a)

对象作为一个元素,存储在容器中,例如data_list=[a,b]

②引用计数-1的情况:

对象的别名被显式销毁,例如del a

对象的别名被赋予新的对象,例如a = 24

一个对象离开它的作用域,例如func函数执行完毕时,func函数中的局部变量(全局变量不会)

对象所在的容器被销毁,或从容器中删除对象

③查看一个对象的引用计数:

import sys a = "hello laoliang" sys.getrefcount(a)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsypf.html