python程序结束前执行自定义函数
需要使用 atexit
模块
这个模块提供了一个 register()
函数,用于注册程序结束时需要执行的回调函数。这些回调函数会在程序正常或异常退出时被调用。
一个简单的示例,其中定义了一个自定义函数 my_exit_handler()
,它会在程序结束时被调用
import atexit
def my_exit_handler():
print("Exiting program...")
atexit.register(my_exit_handler)
# main program code here
print("Hello world")
示例中,my_exit_handler()
函数被注册为回调函数。无论程序的主函数是否抛出异常,当程序结束时,都会调用这个函数并输出 “Exiting program…”。在主函数之后,我们调用 print()
函数输出 “Hello world”。
如果我们在程序结束时有一些清理工作需要完成,那么 atexit
模块是一个好的选择。但是atexit
注册的回调函数只有在 Python 正常退出时才会运行,如果程序遇到致命错误或被强制终止,这些函数不会被执行。