模块和包.atexit

简单介绍:

此模块儿常用来注册回调函数(sys.exitfunc只能注册一个回调函数),而且不支持参数,而atexit是基于sys.exitfunc来实现,把回调函数放到列表中,当程序退出时,按照先后顺序调用注册的回调函数,如果回调函数执行过程中异常,会打印异常信息并继续执行下一个回调函数,直到所有的回调执行完毕,重新抛出上面的异常信息


常用方法:

atexit.register(func, *targs, **kargs)

说明: 注册退出时的回调函数,不可和sys.exitfunc混合使用,可以同时注册多个退出回调函数(其实也可以用装饰器注册回调函数)

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
import atexit


def exit_index0(*args, **kwargs):
    """exit_0 function."""

    print 'exit_0'
    for arg in args:
        print ' '*4, arg


def exit_index1():
    """exit_1 function."""

    print 'exit_1'
    raise Exception, 'exit_1'


def exit_index2(*args, **kwargs):
    """exit_2 function."""

    print 'exit_2'
    for key in kwargs:
        print ' '*4, key, kwargs[key]


def main():
    """Main function."""
    atexit.register(exit_index0, *[0, 0, 0])
    atexit.register(exit_index1)
    atexit.register(exit_index2, **{'0': 1, '1': 1, '2': 1})

if __name__ == '__main__':
    main()

转载于:https://my.oschina.net/pydevops/blog/620872

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值