python中atexit模組的深入理解
atexit模組很簡單,只定義了一個register函數用於註冊程式退出時的回呼函數,我們可以在這個回呼函數中做一些資源清理的操作。以下這篇文章主要介紹了python中atexit模組的相關資料,需要的朋友可以參考下。
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 python from atexit import register def main(): print('Do something.') @register def _atexit(): print('Done.') if __name__ == '__main__': main()
非裝飾器的方式:
#!/usr/bin/env python from atexit import register def 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()
什麼也不會做。
更多python中atexit模組的深入理解相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

在Python中,如何通過字符串動態創建對象並調用其方法?這是一個常見的編程需求,尤其在需要根據配置或運行...
