第十四章:应用构建模块-atexit:程序关闭回调-撤销回调

14.10.3 撤销回调
要撤销一个退出回调,可以使用unregister()把它从注册表删除。

import atexit

def my_cleanup(name):
    print('my_cleanup({})'.format(name))

atexit.register(my_cleanup,'first')
atexit.register(my_cleanup,'second')
atexit.register(my_cleanup,'third')

atexit.unregister(my_cleanup)

对同一个回调的所有调用都会被撤销,而不论它注册了多少次。
在这里插入图片描述
删除原来未注册的回调不会被视为一个错误。

import atexit

def my_cleanup(name):
    print('my_cleanup({})'.format(name))

if False:
    atexit.register(my_cleanup,'never registered')

atexit.unregister(my_cleanup)

因为其会悄悄地忽略未知的回调,所以即使在注册序列未知的情况下也可以使用unregister()。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43193719/article/details/94639663