gpt4 book ai didi

python - __del__ 在程序结束时

转载 作者:太空狗 更新时间:2023-10-29 22:08:31 33 4
gpt4 key购买 nike

假设有一个程序在运行时有几个对象存在于其中。

程序结束时是否调用了每个对象的__del__方法?

如果是,我可以做这样的事情:

class Client:
__del__( self ):
disconnect_from_server()

最佳答案

有很多potential difficulties与使用 __del__ 相关联。通常,没有必要,或者最好自己定义它。

相反,如果您希望对象在退出或出现异常时自行清理,请使用 context manager :

根据 Carl 的评论:

class Client:
def __exit__(self,ext_type,exc_value,traceback):
self.disconnect_from_server()

with Client() as c:
...

原答案:

import contextlib

class Client:
...

@contextlib.contextmanager
def make_client():
c=Client()
yield c
c.disconnect_from_server()

with make_client() as c:
...

关于python - __del__ 在程序结束时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3554952/

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