对象生命周期|Python

对象的生命周期由对象的创建,操作和销毁几个部分组成。

对象的生命周期

第一阶段是它所属的类的定义。

下一个阶段是调用 __init__ 时实例的实例化。内存被分配来存储实例。

在调用 __init__ 方法之前,Python首先调用 __new__ 方法。

这之后,对象就可以使用了。
其他代码则可以通过调用对象和访问其属性来与对象交互。
最终,对象会完成使用,并可以被销毁。

对象生命周期|Python插图

当一个对象被销毁时,分配给它的内存被释放,并可用于其他目的。

当引用计数达到零时,就会发生对象的破坏。引用计数是引用一个对象的变量和其他元素的数量。

如果什么都没有引用它(它的引用计数为零),什么都不能与它交互,所以它可以安全地删除。

在某些情况下,两个(或更多)对象只能被彼此引用,因此也可以被删除。

del 语句会将对象的引用计数减少一个,这通常会导致删除。

del 语句的魔术方法是__del__。

对象生命周期|Python插图1

不再需要的对象删除的过程称为垃圾收集。

输出:

对象生命周期|Python插图2

总之,当一个对象的引用计数被分配一个新的名字或者放在一个容器(列表,元组或者字典)中时,它的引用计数(计数内存里变量的数量)会增加。

当用 del 删除对象的引用计数时,它的引用计数会减少,引用被重新分配或引用超出作用域。当一个对象的引用计数达到零时,Python 会自动删除它。

例如:

a = 42  # 创建对象 <42>
b = a  # 计数器计数增加
c = [a]  # 计数器计数增加

del a  # 计数器计数减少
b = 100  # 计数器计数减少
c[0] = -1  # 计数器计数减少

像 C 这样的低级语言没有这种自动内存管理。

对象生命周期|Python插图3

版权声明:
作者:RHZ
链接:https://www.rhzhz.cn/?p=945
来源:RHZ | 用文字记录工作和学习生活
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
对象生命周期|Python
对象的生命周期由对象的创建,操作和销毁几个部分组成。 对象的生命周期 第一阶段是它所属的类的定义。 下一个阶段是调用 __init__ 时实例的实例化……
<<上一篇
下一篇>>