用python写一些api测试, 需要在程序结束前记录时间, 尝试了各种中文的英文的关键词, 终于搜索到atexit这个模块.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import atexit def exit_function(): print("exiting") def exit_function2(name, age): print("exiting2: " + name + " " + str(age)) @atexit.register def exit_function3(): print("exiting3") if __name__ == '__main__': atexit.register(exit_function) atexit.register(exit_function2, 'Phoenix', 22)
|
可注册多个回调函数, 也可以传入参数, 也可以使用装饰器来修饰需要回调的函数, 执行顺序是先进后出, 代码由上至下, 所以注册顺序是exit_function3, exit_function, exit_function2, 所以执行顺序反过来:
1 2 3
| exiting2: 22Phoenix exiting exiting3
|
注意: 如果程序是非正常crash,或通过os._exit()退出,注册的回调函数将不会被调用.