zoukankan      html  css  js  c++  java
  • python之atexit模块的使用

    python atexit 模块定义了一个 register 函数,用于在 python 解释器中注册一个退出函数,这个函数在解释器正常终止时自动执行,一般用来做一些资源清理的操作。 atexit 按注册的相反顺序执行这些函数; 例如注册A、B、C,在解释器终止时按顺序C,B,A运行。

    Note:如果程序是非正常crash,或者通过os._exit()退出,注册的退出函数将不会被调用。

    通过装饰器的方式:
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # @Time   : 2019/07/22 23:57
    # @Author : wang huixi
    # @File   : update.py
    import  os
    from atexit import register
    
    def main():
        print('Do something.')
    @register
    def _atexit():
        print('Done.')
    if __name__ == '__main__':
        main()
    非装饰器的方式:
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # @Time   : 2019/07/22 23:57
    # @Author : wang huixi
    # @File   : update.py
    import  os
    from atexit import register
    def main():
        print('main')
    
    def goodbye(name, adjective):
        print('Goodbye, %s, it was %s to meet you.' % (name, adjective))
    
    
    # register(goodbye, 'Donny', 'nice')
    # or:
    # register(goodbye, adjective='nice', name='Donny')
    if __name__ == '__main__':
        register(goodbye, adjective='nice', name='Donny')
        main()
        exit(1) #程序退出了
        print "chegn xu"

    删除退出函数(一般用不到)
    atexit.unregister(func)

    从解释器关闭时运行的函数列表中删除func。 调用unregister()后,当解释器关闭时,即使它被注册了多次,func也不会被调用。如果func没有注册过的话,则unregister()什么也不会做。

  • 相关阅读:
    时间控件的操作
    Appium环境搭建
    测试常用英文词汇
    自动化测试中一段代码对应多个用例
    Linux常见命令
    元素的操作的简谈
    eclipse代码编辑界面代码块收缩的实现
    关键字驱动和数据驱动
    uni-app中如何判断浏览器内核
    JS实现 图片放大镜功能
  • 原文地址:https://www.cnblogs.com/wanghuixi/p/11254304.html
Copyright © 2011-2022 走看看