一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類(lèi)導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python中atexit模塊的基本使用示例

Python中atexit模塊的基本使用示例

2020-07-20 10:45DarkBull Python

這篇文章主要介紹了Python中atexit模塊的基本使用示例,示例代碼基于Python2.x版本,注意其和Python3的兼容性,需要的朋友可以參考下

atexit模塊很簡(jiǎn)單,只定義了一個(gè)register函數(shù)用于注冊(cè)程序退出時(shí)的回調(diào)函數(shù),我們可以在這個(gè)回調(diào)函數(shù)中做一些資源清理的操作。

注:如果程序是非正常crash,或者通過(guò)os._exit()退出,注冊(cè)的回調(diào)函數(shù)將不會(huì)被調(diào)用。

我們也可以通過(guò)sys.exitfunc來(lái)注冊(cè)回調(diào),但通過(guò)它只能注冊(cè)一個(gè)回調(diào),而且還不支持參數(shù)。所以建議大家使用atexit來(lái)注冊(cè)回調(diào)函數(shù)。但千萬(wàn)不要在程序中同時(shí)使用這兩種方式,否則通過(guò)atexit注冊(cè)的回調(diào)可能不會(huì)被正常調(diào)用。其實(shí)通過(guò)查閱atexit的源碼,你會(huì)發(fā)現(xiàn)原來(lái)它內(nèi)部是通過(guò)sys.exitfunc來(lái)實(shí)現(xiàn)的,它先把注冊(cè)的回調(diào)函數(shù)放到一個(gè)列表中,當(dāng)程序退出的時(shí)候,按先進(jìn)后出的順序調(diào)用注冊(cè)的回調(diào)。如果回調(diào)函數(shù)在執(zhí)行過(guò)程中拋出了異常,atexit會(huì)打印異常的文字信息,并繼續(xù)執(zhí)行下一下回調(diào),直到所有的回調(diào)都執(zhí)行完畢,它會(huì)重新拋出最后接收到的異常。

如果使用的python版本是2.6,還可以用裝飾器的語(yǔ)法來(lái)注冊(cè)回調(diào)函數(shù)。

下面是一個(gè)例子,展示了atexit模塊的使用:
 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import atexit
 
def exit0(*args, **kwarg):
  print 'exit0'
  for arg in args:
    print ' ' * 4, arg
 
  for item in kwarg.items():
    print ' ' * 4, item
 
def exit1():
  print 'exit1'
  raise Exception, 'exit1'
 
def exit2():
  print 'exit2'
 
atexit.register(exit0, *[1, 2, 3], **{ "a": 1, "b": 2, })
atexit.register(exit1)
atexit.register(exit2)
 
@atexit.register
def exit3():
  print 'exit3'
 
if __name__ == '__main__':
  pass

下面是程序運(yùn)行的結(jié)果,可以看到回調(diào)函數(shù)執(zhí)行的順序與它們被注冊(cè)的順序剛才相反。

Python中atexit模塊的基本使用示例

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99在线视频精品 | 日韩v | 亚洲午夜久久久久久91 | 亚洲AV午夜福利精品香蕉麻豆 | 国产一区二区三区在线 | 午夜大片在线观看 | 双性受合不垅腿攻np | 成年人免费在线看 | 国产精品久久毛片完整版 | 亚洲视频在线一区二区三区 | 亚洲国产货青视觉盛宴 | 好姑娘在线完整版视频 | 息与子中文字幕完整在线 | 动漫美女人物被黄漫小说 | 国产清纯91天堂在线观看 | 免费片在线观看高清 | 国产精品猎奇系列在线观看 | 校花的第一次好紧好爽 | 久久黄色小视频 | 国产亚洲精aa在线观看不卡 | 91污污视频| 国产91青青成人a在线 | 欧美午夜精品 | 男女18一级大黄毛片免 | 特黄a级三级三级野战 | 四虎影院最新网址 | 国产精品成人网红女主播 | 国产区成人综合色在线 | 女人张开腿让男人做爽爽 | 欧美日韩国产另类一区二区三区 | 视频一区二区 村上凉子 | 蜜桃成熟3在线观看 | 美女扒开腿让男生捅 | 男人摸女人下面 | yellow最新视频2019 | 美女和男生搞基 | 校园纯肉H教室第一次 | 激情视频激情小说 | 91免费永久在线地址 | 天天天做天天天天爱天天想 | 日本黄视频在线播放 |