• 如何讓你的程序在退出的時候執行一段代碼?


    使用python自帶的一個atexit模塊

    測試代碼:

    import atexit
    
    @atexit.register
    def clean():
      print("程序推出時會執行的代碼已經被執行!")
    
    def test():
      example = {'a': 1, 'b': 2}
      print(example['c'])   # 此錯出錯
    
    test()

    輸出的結果是這樣的:

    Traceback (most recent call last):
      File "e:FileOtherTextscript練習讓程序在退出的時候執行一段代碼.py", line 14, in <module>
        test()
      File "e:FileOtherTextscript練習讓程序在退出的時候執行一段代碼.py", line 11, in test
        print(example["c"])  # 此錯出錯
    KeyError: 'c'
    程序推出時會執行的代碼已經被執行!

    很明顯能看出由於報錯,程序意外終止,但是clean()函數依舊被執行了,程序即使不報錯clean()的內容依舊會被執行,這裡就不再演示,不信的話可以自己嘗試一下,

    注意事項:

    • 如果clean()函数有参数,那么你可以不用装饰器,而是直接调用atexit.register(clean_1, 参数1, 参数2, 参数3='xxx')。
    • 如果程序是被你没有处理过的系统信号杀死的,那么注册的函数无法正常执行。
    • 如果发生了严重的Python内部错误,你注册的函数无法正常执行。
    • 如果你手动调用了os._exit(),你注册的函数无法正常执行。

  • 相关阅读:
    python基础-运算符和编码
    python介绍
    墨菲定律
    羊皮卷
    循环神经网络层
    ResNet实战
    ResNet实战
    ResNet,DenseNet
    经典卷积网络VGG,GoodLeNet,Inception
    CIFAR100与VGG13实战
  • 原文地址:https://www.cnblogs.com/ltozvxe/p/12868402.html
Copyright © 2020-2023  润新知