Python 类 __del__ 方法

标签 python

如果主题位于错误的部分,我很抱歉

我对 Python 类 __del__ 方法很好奇:

示例:

class A():
    [...]

class B():
    __init__:
        self.a = A()
    __del__:
        del self.a

b = B()
del b

我必须在B类上编写__del__方法吗? 当删除 B 实例时,B 中的 A class 实例是否会从内存中删除,或者我们必须像我一样使用 __del__ 方法?

最佳答案

B对象被销毁时(在“最终确定”之后),它的引用a消失,因此del a在< em>most 调整 A 对象销毁的时间(以此处显示的代码无法观察到的方式)。 “最多”是因为对象终结/销毁的时间(甚至发生)完全未指定,除了终结先于销毁并且在引用对象时两者都不会发生。

关于Python 类 __del__ 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58348509/

相关文章:

python - python相对xml节点遍历

python - 关于 Python/Django 和消息队列的建议

python - 如何/在哪里发布 Python 包

python - 如何在没有gil(nogil)的情况下在cython cdef中返回两个值

Python 导入约定

python - 使用 keras tokenizer 处理不在训练集中的新词

Python - 检查数字是 0 还是 False 的任何方法

python - 如何在Python中从目录(包括子目录)中有效地选择100个随机JPG文件?

python - 下载 PDF 作为文件对象,无需使用 Python 中的 Chrome 和 Selenium 下载文件

python - tf.keras.models.model 与 tf.keras.model