RHZ'S BLOG | 个人分享

  • 首页
  • 笔记
  • 小日常
  • 音乐
  • 读书
  • 软件分享
YOLO
  1. 首页
  2. 笔记
  3. Code
  4. 正文

对象生命周期|Python

2022年9月14日 109点热度 0人点赞 1条评论

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

对象的生命周期

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

下一个阶段是调用 __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
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年9月14日

RHZ

即使单枪匹马,我亦勇敢无畏

点赞
< 上一篇
下一篇 >

文章评论

  • 头像
    כנסו לאתר

    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!

    2022年9月20日
    回复
  • 取消回复
    归档
    • 2023年2月
    • 2022年12月
    • 2022年11月
    • 2022年10月
    • 2022年9月
    • 2022年8月
    • 2022年7月
    • 2022年6月
    • 2022年5月
    • 2022年4月
    • 2022年3月
    • 2022年2月
    • 2021年12月
    • 2021年11月
    • 2021年10月
    • 2021年8月
    • 2021年7月

    COPYRIGHT © 2022 RHZ的博客. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    渝ICP备2022008933号-1