如何实现-在__del__上写入文件?

Kay*_*rix 5 python memory garbage-collection destructor del

我正在尝试对类 obj 销毁进行一些活动。如何实现文件打开__del__功能?(我使用的是Python 3.4)

class iam(object):

    def __init__(self):
        print("I m born")

    def __del__(self):
        f = open("memory_report.txt", "w")
        f.write("He gone safe")
        f.close()
    
if __name__ == '__main__':
    i = iam()
    print("Script Ends. Now to GC clean memory")


Output:
Run Code Online (Sandbox Code Playgroud)
I m born
Script Ends. Now to GC clean memory
Exception ignored in: <bound method iam.__del__ of <__main__.iam object at 0x00000000022F1A58>>
Traceback (most recent call last):
  File "F:\Kumaresan\Code\Python\CommonLib\src\kmxPyQt\devConsole3\tet.py", line 14, in __del__
NameError: name 'open' is not defined    
Run Code Online (Sandbox Code Playgroud)

dee*_*ets 3

正如其他人提到的,不要使用 ____del___ 方法来执行此类清理。相反,使用上下文管理器(with -statement)或注册atexit-handlers。