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

首頁 > 編程 > Python > 正文

深入理解python中的atexit模塊

2020-02-23 04:26:22
字體:
來源:轉載
供稿:網友

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()什么也不會做。

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锦州市| 米脂县| 桃源县| 乌恰县| 上饶县| 桦甸市| 阿瓦提县| 凤山市| 抚顺市| 乌鲁木齐县| 合山市| 囊谦县| 玉环县| 绥棱县| 海安县| 乐清市| 锡林浩特市| 鱼台县| 登封市| 太谷县| 常州市| 泊头市| 勐海县| 上饶县| 泾川县| 南皮县| 曲周县| 莱州市| 龙川县| 阜康市| 连平县| 闵行区| 包头市| 南投县| 贡觉县| 清远市| 富民县| 巴林右旗| 昭平县| 彝良县| 玛沁县|