最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解python中的atexit模塊

 更新時間:2017年03月07日 08:24:17   作者:LoyaChen  
atexit模塊很簡單,只定義了一個register函數(shù)用于注冊程序退出時的回調(diào)函數(shù),我們可以在這個回調(diào)函數(shù)中做一些資源清理的操作。下面這篇文章主要介紹了python中atexit模塊的相關(guān)資料,需要的朋友可以參考下。

atexit 模塊介紹

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

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

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

注冊 退出函數(shù)

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

將func作為要在終止時執(zhí)行的函數(shù)。任何要傳遞給func的可選參數(shù)必須作為參數(shù)傳遞給register() ??梢远啻巫韵嗤暮瘮?shù)和參數(shù)。

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

示例

通過裝飾器的方式:

#!/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()

刪除退出函數(shù)[一般用不到]

> atexit.unregister(func)
>

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

總結(jié)

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

相關(guān)文章

最新評論

兴义市| 师宗县| 团风县| 衡东县| 海南省| 梁河县| 丰原市| 抚顺县| 高安市| 亚东县| 左贡县| 定日县| 宜宾市| 盈江县| 旬邑县| 西和县| 巴马| 隆昌县| 得荣县| 盐亭县| 东兰县| 永仁县| 双牌县| 汤原县| 巧家县| 博罗县| 孝感市| 磐石市| 兰坪| 合水县| 贞丰县| 宁河县| 江川县| 吉林省| 鹤峰县| 双江| 海盐县| 大埔区| 广丰县| 三江| 广水市|