Python3 atexit — 程序关闭时回调
atexit
是 Python 的内置模块,用于注册程序退出时的回调函数。这些注册的函数将在程序退出时执行,通常是当解释器退出或主程序流程终止时。
解决方案:
方法一:使用 atexit.register()
注册函数。
import atexit
def my_callback():
print("程序即将退出,执行回调函数...")
# 注册回调函数
atexit.register(my_callback)
# 程序主逻辑
print("程序开始执行...")
# 程序主逻辑结束
print("程序结束执行...")
方法二:使用 atexit.add_hook()
直接添加钩子函数。
import atexit
def my_callback():
print("程序即将退出,执行回调函数...")
# 直接添加钩子函数
atexit.add_hook(my_callback)
# 程序主逻辑
print("程序开始执行...")
# 程序主逻辑结束
print("程序结束执行...")
以上两种方法都可以在程序退出时执行注册的回调函数。注意,这些注册的函数将按照它们被添加时的顺序执行,最后一个添加的函数最先执行。
另外,注册的函数不应该有任何参数,因为 sys.exitfunc
在注册时不接受参数。如果需要参数,可以考虑使用 threading
模块创建一个守护线程,在该线程中使用 atexit
注册函数。
评论已关闭