Mis a jour le 2025-04-14, 12:10

module atexit pour actions en fin de programme.

le module atexit permet d'enregistrer des appels de fonctions à faire en sortie d'un programme pour faire le ménage :
  • pour utiliser le module, faire import atexit.
  • pour enregistrer une fonction avec des arguments à donner, faire : atexit.register(myFunc, 1, 2), la fonction myFunc étant définie par def myFunc(arg1, arg2).
  • on peut aussi enregistrer une fonction par : atexit.register(myFunc, 1, 2), la fonction myFunc étant définie par def myFunc(*arg), et arg reçoit alors le tuple des arguments.
  • on peut aussi enregistrer une fonction par : atexit.register(myFunc, a = 1, b = 2), la fonction myFunc étant définie par def myFunc(**arg), et arg reçoit alors le dictionnaire des arguments.
  • dans quelles situations les fonctions sont appelées :
    • en sortie "normale" de programme, y compris avec un sys.exit(1) par exemple.
    • si le programme se termine à cause d'un raise d'une exception.
    • si le programme se termine à cause d'une erreur python (fonction appelée non existante, ou évaluation de None + 1 par exemple).
    • si on fait un Ctrl-C pour interrompre le programme (SIGINT)
    • mais pas d'appel si on tue le programme par SIGTERM (kill -15) ou SIGKILL (kill -9).
  • les fonctions enregistrées sont appelées dans l'ordre inverse de l'enregistrement.

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert