3.3 atexit --- Fonctions de sortie

Nouveau en version 2.0

Le module atexit définit une fonction unique pour déclarer des fonctions de nettoyage. Des fonctions ainsi déclarées sont automatiquement exécutées quand l'interpréteur se termine normalement.

Note : les fonctions déclarées par ce module ne sont pas appelées quand le programme est tué par un signal, quand une erreur interne fatale de Python est détectée, ou quand os._exit() est appelée.

Il s'agit d'une interface alternative à la fonctionnalité fournie par la variable sys.exitfunc.

Note: il y a peu de chances pour que ce module fonctionne correctement quand il est utilisé avec un autre code qui affecte une valeur à sys.exitfunc. En particulier, d'autres modules du coeur de Python sont autorisés à faire appel à atexit sans que le programmeur le sache. Les auteurs qui utilisent sys.exitfunc devraient réécrire leur code pour utiliser atexit à la place. La façon la plus simple pour convertir un code qui affecte une valeur à sys.exitfunc est d'importer atexit et de déclarer avec register la fonction qui a été liée à sys.exitfunc.

register(fonction[, *args[, **kargs]])
Déclare func comme fonction à exécuter en sortie de l'interpréteur. Tous les arguments optionnels qui doivent être passés à fonction doivent être passés comme arguments à register().

Quand un programme se termine normalement (par exemple, si sys.exit() est appelée ou que l'exécution du module principal se termine), toutes les fonctions déclarées sont exécutées dans un ordre dernier entré, premier sorti. Ceci suppose que les modules de plus bas niveau seront normalement importés avant les modules de plus haut niveau et doivent donc être nettoyés plus tard.

Voir aussi:

Module readline:
Exemple utile de atexit pour lire et écrire des fichiers d'historique readline.


Sous-sections
  1. Exemple atexit