Python是否有与__init __()等效的关闭

Ker*_*itG 2 python

__init__()在Python类中使用很多函数来在首次调用类时设置东西.

是否有一个在脚本关闭时调用的等效函数?

mgi*_*son 5

有一个__del__方法在对象完成时调用.但是,python不保证__del__在解释器退出时实际上会在对象上调用它.

有几种选择:

  • atexit.register - 在这里,您可以注册一个在脚本终止时运行的函数
  • 创建一个上下文管理器并使用该with语句.__exit__离开上下文时,将无条件地调用上下文管理器的方法.

如果您做了一些非常讨厌退出程序的事情(例如某种程度上导致分段错误或退出通过os._exit),这两个选项都会失败