Python atexit模块

atexit模块介绍

作用:让注册的函数在解释器正常终止时自动执行,可以注册多个函数,所注册的函数会逆序执行(据查资料,造成逆序的原因为函数压栈造成的,先进后出)

1、正常注册 ,示例如下。

def goodbye(name, adjective):
    print("Goodbye %s, it was %s to meet you."% (name, adjective))

def hello():
    print('hello world!')

def a():
    print('a')

import atexit
atexit.register(goodbye, 'Donny', 'nice')
atexit.register(a)
hello()
# 输出
PS E:\Atom\files\app> python .\ex9_atexit.py
hello world!
a
Goodbye Donny, it was nice to meet you.

2、可以使用装饰器来注册,但是只适用于没有参数时调用。

import atexit

@atexit.register
def hello():
    print('Hello world!')

# 输出
PS E:\Atom\files\app> python .\ex9_atexit.py
Hello world!

3、取消注册, 示例如下。

def goodbye(name, adjective):
    print("Goodbye %s, it was %s to meet you."% (name, adjective))

def hello():
    print('hello world!')

def a():
    print('a')

import atexit
atexit.register(goodbye, 'Donny', 'nice')
atexit.register(a)
atexit.register(a)
atexit.register(a)
hello()
atexit.unregister(a)
# 输出
PS E:\Atom\files\app> python .\ex9_atexit.py
hello world!
Goodbye Donny, it was nice to meet you.

这个模块一般用来在程序结束时,做资源清理。

 

转载于:https://www.cnblogs.com/Frange/p/9371072.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值