国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

深入理解python中的atexit模塊

2019-11-25 16:19:59
字體:
來源:轉載
供稿:網友

atexit 模塊介紹

python atexit 模塊定義了一個 register 函數,用于在 python 解釋器中注冊一個退出函數,這個函數在解釋器正常終止時自動執行,一般用來做一些資源清理的操作。 atexit 按注冊的相反順序執行這些函數; 例如注冊A、B、C,在解釋器終止時按順序C,B,A運行。

Note:如果程序是非正常crash,或者通過os._exit()退出,注冊的退出函數將不會被調用。

官方文檔:https://docs.python.org/3.5/library/atexit.html

注冊 退出函數

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

將func作為要在終止時執行的函數。任何要傳遞給func的可選參數必須作為參數傳遞給register() 。可以多次注冊相同的函數和參數。

當程序退出的時候,按先進后出的順序調用注冊的函數。如果退出函數在執行過程中拋出了異常,atexit會打印異常的信息,并繼續執行下一下回調,直到所有退出函數執行完畢,它會重新拋出最后接收到的異常。

示例

通過裝飾器的方式:

#!/usr/bin/env pythonfrom atexit import registerdef main(): print('Do something.')@registerdef _atexit(): print('Done.')if __name__ == '__main__': main()

非裝飾器的方式:

#!/usr/bin/env pythonfrom atexit import registerdef main(): #pass print('XX')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__': main()

刪除退出函數[一般用不到]

> atexit.unregister(func)>

從解釋器關閉時運行的函數列表中刪除func。 調用unregister()后,當解釋器關閉時,即使它被注冊了多次,func也不會被調用。如果func沒有注冊過的話,則unregister()什么也不會做。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湟源县| 沙湾县| 福建省| 大关县| 从江县| 枣庄市| 邛崃市| 沈阳市| 建水县| 株洲市| 蛟河市| 科尔| 黄浦区| 措美县| 陵川县| 台南县| 民乐县| 巴里| 内黄县| 湖州市| 苏州市| 铁岭县| 西贡区| 汤阴县| 遂宁市| 长子县| 龙川县| 德惠市| 靖西县| 玉树县| 兴海县| 平果县| 桂平市| 富锦市| 广平县| 铜梁县| 民丰县| 遵义市| 织金县| 儋州市| 红河县|