【发布时间】:2021-05-05 14:14:19
【问题描述】:
我有一个带有__del__ 方法的对象。我希望在解释器关闭时调用此方法。 __del__ 方法将打开并写入特定文件。在全局垃圾回收之前,io 模块似乎已关闭。
#!/usr/bin/env python3
class Foo:
def __del__(self):
with open('/tmp/doge_poop', 'w') as f:
f.write('corn kernel')
foo=Foo()
运行上述 MWE 会得到以下结果:
Exception ignored in: <function Foo.__del__ at 0x7f4984176310>
Traceback (most recent call last):
File "b.py", line 4, in __del__
NameError: name 'open' is not defined
【问题讨论】:
-
我尝试添加 foo 的成员
self.open=open,再次失败。