Python中垃圾回收机制是如何工作的?

2026-05-16 22:210阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1624个文字,预计阅读时间需要7分钟。

Python中垃圾回收机制是如何工作的?

一、引用计数+Python+垃圾回收以引用计数为主,分代回收为辅。引用计数法的原理是每个对象维护一个引用计数器ob_refcnt,用来记录对象被引用的次数,也是用来追踪对象有多少引用指向它。

一、引用计数

Python 垃圾回收以引用计数为主,分代回收为辅。引用计数法的原理是每个对象维护一个ob_refcnt,用来记录对象被引用的次数,也就是用来追踪有多少个引用指向了对象,当发生以下四种情况的时候,对象的引用计数+1:

  • 对象被创建,比如:a = 14
  • 对象被引用,比如: b = a
  • 对象被作为参数,传给函数,比如:func(a)
  • 对象作为容器中的一个元素,比如:List = {a, ”a” , ”b”, 2}

与上述情况相对应,当发生以下四种情况时,对象的引用计数-1:

对象的别名被显式销毁,比如:del a
对象的别名被赋予新的对象,比如:a = 26
对象离开它的作用域,比如 func() 执行完毕时,函数里面的所有局部变量的引用计数都会减 1
将元素从容器中删除,或者容器被销毁
当对象的引用计数为 0 时,它将被 Python 虚拟机回收。

阅读全文

本文共计1624个文字,预计阅读时间需要7分钟。

Python中垃圾回收机制是如何工作的?

一、引用计数+Python+垃圾回收以引用计数为主,分代回收为辅。引用计数法的原理是每个对象维护一个引用计数器ob_refcnt,用来记录对象被引用的次数,也是用来追踪对象有多少引用指向它。

一、引用计数

Python 垃圾回收以引用计数为主,分代回收为辅。引用计数法的原理是每个对象维护一个ob_refcnt,用来记录对象被引用的次数,也就是用来追踪有多少个引用指向了对象,当发生以下四种情况的时候,对象的引用计数+1:

  • 对象被创建,比如:a = 14
  • 对象被引用,比如: b = a
  • 对象被作为参数,传给函数,比如:func(a)
  • 对象作为容器中的一个元素,比如:List = {a, ”a” , ”b”, 2}

与上述情况相对应,当发生以下四种情况时,对象的引用计数-1:

对象的别名被显式销毁,比如:del a
对象的别名被赋予新的对象,比如:a = 26
对象离开它的作用域,比如 func() 执行完毕时,函数里面的所有局部变量的引用计数都会减 1
将元素从容器中删除,或者容器被销毁
当对象的引用计数为 0 时,它将被 Python 虚拟机回收。

阅读全文