Python 有与 __init__() 等价的 shutdown 吗?
我在Python类中经常使用__init__()
函数,这个函数在类第一次被调用时用来设置一些东西。
那么,有没有类似的函数可以在脚本关闭时被调用呢?
1 个回答
6
在Python中,有一个叫做 __del__
的方法,它会在一个对象被清理时被调用。不过,Python并不能保证在解释器退出时一定会调用这个 __del__
方法。
不过,还有一些其他的选择:
- atexit.register -- 你可以在这里注册一个函数,让它在你的脚本结束时运行。
- 创建一个 上下文管理器,然后使用
with
语句。这样,当你离开这个上下文时,你的上下文管理器的__exit__
方法会被无条件地调用。
不过,如果你做了一些很极端的事情来退出程序(比如导致段错误,或者通过 os._exit
直接退出),这两种方法都可能会失效。