【问题标题】:is it compulsory to use __del__ method in all custom created classes , is del command a destructor是否必须在所有自定义创建的类中使用 __del__ 方法,del 命令是析构函数吗?
【发布时间】:2017-09-27 22:26:01
【问题描述】:

是否必须在所有自定义创建的类中使用__del__ 方法? del 命令是析构函数吗?

【问题讨论】:

  • 除非你知道你真的需要它,否则不要实现__del__。如果你必须问“我在这门课上需要__del__ 吗?”,你可能不需要。

标签: python destructor


【解决方案1】:

不,del 只是删除名称。如果该名称引用的对象有其他引用,它将继续存在。 __del__ 方法在没有对象引用的情况下也不能保证被调用。

如果您需要可预测的对象寿命和自行清理的能力,请使用上下文管理器和 with 语句。

【讨论】:

    【解决方案2】:

    没有,也没有。

    很好的描述in the docs

    你真的不必担心__del__,但它是一个析构函数,会被垃圾收集器调用。

    del 不是析构函数,它只是删除一个引用。当所有引用都消失后,垃圾收集器最终可能会调用__del__

    【讨论】:

      猜你喜欢
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 2021-12-26
      • 1970-01-01
      相关资源
      最近更新 更多