Compréhension approfondie du module atexit en python

高洛峰
Libérer: 2017-03-08 09:21:01
original
1176 Les gens l'ont consulté

Le module atexit est très simple. Il définit uniquement une fonction de registre pour enregistrer une fonction de rappel lorsque le programme se termine. Nous pouvons effectuer certaines opérations de nettoyage de ressources dans cette fonction de rappel. L'article suivant présente principalement les informations pertinentes du module atexit en python. Les amis dans le besoin peuvent s'y référer.

introduction du module atexit

Le module python atexit définit une fonction de registre, qui est utilisée pour enregistrer une fonction de sortie dans le python interpréteur , cette fonction est automatiquement exécutée lorsque l'interpréteur se termine normalement et est généralement utilisée pour effectuer certaines opérations de nettoyage des ressources. atexit exécute ces fonctions dans l'ordre inverse dans lequel elles ont été enregistrées ; par exemple, enregistrez A, B, C et exécutez-les dans l'ordre C, B, A lorsque l'interpréteur se termine.

Remarque : si le programme plante anormalement ou se termine via os._exit(), la fonction de sortie enregistrée ne sera pas appelée.

Documentation officielle : https://docs.python.org/3.5/library/atexit.html

Fonction de sortie d'enregistrement

atexit.register(func, *args, **kargs)
Copier après la connexion

Mettez func comme fonction à exécuter à la fin. Tous les arguments facultatifs à transmettre à func doivent être transmis en tant qu'arguments à register(). La même fonction et les mêmes paramètres peuvent être enregistrés plusieurs fois.

Lorsque le programme se termine, les fonctions enregistrées sont appelées dans l'ordre premier entré, dernier sorti. Si une exception est levée lors de l'exécution de la fonction de sortie, atexit imprimera les informations sur l'exception et continuera à exécuter le prochain rappel jusqu'à ce que toutes les fonctions de sortie soient exécutées, et il renverra la dernière exception reçue.

Exemple

Par décorateur :

#!/usr/bin/env python
from atexit import register
def main():
 print('Do something.')
@register
def _atexit():
 print('Done.')
if __name__ == '__main__':
 main()
Copier après la connexion

Méthode non-décoratrice :

#!/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()
Copier après la connexion

Supprimer la fonction de sortie [généralement non utilisée]

> atexit.unregister(func)
>
Copier après la connexion

Supprimez func de la liste des fonctions qui s'exécutent lorsque l'interpréteur est fermé. Après avoir appelé unregister(), lorsque l'interprète est fermé, func ne sera pas appelé même s'il est enregistré plusieurs fois. Si func n'a pas été enregistré, unregister() ne fera rien.

Pour une compréhension plus approfondie du module atexit en python et des articles associés, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!