gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:59:41 24 4
gpt4 key购买 nike

我正在尝试对类 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:
<小时/>
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

最佳答案

下面的代码工作正常。

class iam(object):

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

def __del__(self):
#"open" function still in __builtins__
f = open("memory_report.txt", "w")
f.write("He gone safe")
f.close()

def write_iam():
i=iam()

if __name__ == '__main__':
write_iam()
print("Script Ends. Now to GC clean memory")

在这种情况下:

class iam(object):

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

def __del__(self):
#__builtins__.open has remove
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")

当退出__main__函数时,在GC删除“i”实例(执行i.__delete__)之前,“open”函数已从__builtins__中删除。

关于python - 如何实现-在__del__上写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26544076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com