MST

星途 面试题库

面试题:Python垃圾回收机制下del语句的作用细节

Python有自动垃圾回收机制(GC),结合GC原理,阐述del语句在其中扮演怎样的角色,以及它与引用计数的关系。当del语句删除一个对象时,垃圾回收机制会有哪些具体动作?
50.2万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

del语句的角色及与引用计数的关系

  1. del语句角色del语句用于删除变量名与对象的绑定关系。它并不是直接删除对象本身,而是切断变量对对象的引用。
  2. 与引用计数关系:Python采用引用计数为主,分代收集为辅的垃圾回收机制。引用计数是指每个对象都记录有多少个引用指向它。del语句执行时,会减少对象的引用计数。当引用计数减为0时,对象的内存会被立即释放。

del语句删除对象时垃圾回收机制的具体动作

  1. 减少引用计数del语句执行后,被删除变量所指向对象的引用计数减1。
  2. 判断引用计数:若引用计数变为0,Python会立即回收该对象占用的内存空间,包括对象自身以及对象内部引用的其他对象(如果这些内部对象引用计数也变为0)。
  3. 触发其他垃圾回收机制:如果del操作导致某一代的对象数量达到一定阈值(分代收集机制),则会触发相应代的垃圾回收扫描,检查并回收那些可能存在的循环引用对象(即使引用计数不为0,但相互引用形成环的对象)。