From Python 文档 https://docs.python.org/3/reference/datamodel.html?highlight=__del__#object.__del__:
不保证__del__()
为解释器退出时仍然存在的对象调用方法。
据我了解,也没有办法保证对象在解释器退出之前停止存在,因为由垃圾收集器决定是否以及何时删除对象。
那么这个方法到底有什么意义呢?您可以在其中编写清理代码,但不能保证它会被执行。
我知道你可以使用以下方法解决这个问题try
-finally
or with
条款,但我仍然想知道什么是有意义的用例__del__()
method.
它可用于处置对象管理的资源:https://github.com/python/cpython/blob/master/Lib/zipfile.py#L1805 https://github.com/python/cpython/blob/master/Lib/zipfile.py#L1805
正如文档字符串中所述,这是最后的手段,因为只有在 gc 运行时才会关闭对象。
正如您在问题中所说,首选方式是致电close
您自己,或者通过致电.close()
直接或使用上下文管理器with Zipfile() as z:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)