对象的生命周期由对象的创建,操作和销毁几个部分组成。
对象的生命周期
第一阶段是它所属的类的定义。
下一个阶段是调用 __init__ 时实例的实例化。内存被分配来存储实例。
在调用 __init__ 方法之前,Python首先调用 __new__ 方法。
这之后,对象就可以使用了。
其他代码则可以通过调用对象和访问其属性来与对象交互。
最终,对象会完成使用,并可以被销毁。

当一个对象被销毁时,分配给它的内存被释放,并可用于其他目的。
当引用计数达到零时,就会发生对象的破坏。引用计数是引用一个对象的变量和其他元素的数量。
如果什么都没有引用它(它的引用计数为零),什么都不能与它交互,所以它可以安全地删除。
在某些情况下,两个(或更多)对象只能被彼此引用,因此也可以被删除。
del 语句会将对象的引用计数减少一个,这通常会导致删除。
del 语句的魔术方法是__del__。

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

总之,当一个对象的引用计数被分配一个新的名字或者放在一个容器(列表,元组或者字典)中时,它的引用计数(计数内存里变量的数量)会增加。
当用 del 删除对象的引用计数时,它的引用计数会减少,引用被重新分配或引用超出作用域。当一个对象的引用计数达到零时,Python 会自动删除它。
例如:
a = 42 # 创建对象 <42>
b = a # 计数器计数增加
c = [a] # 计数器计数增加
del a # 计数器计数减少
b = 100 # 计数器计数减少
c[0] = -1 # 计数器计数减少
像 C 这样的低级语言没有这种自动内存管理。

文章评论
Everything is very open with a really clear clarification of the challenges. It was really informative. Your website is extremely helpful. Thank you for sharing!