Lancer une fonction automatiquement à l’arrêt de Python 4


Vous avez des envies de sortie grandiloquentes ? Ou juste besoin d’un peu de ménage à l’arrêt de la machine virtuelle de Python ?

Il y a un module pour ça™.

import atexit
 
# la version courte
@atexit.register
def strange_game():
    print "What about a nice game of chess ?"
 
 
def last_word(word="rosebud"):
    print word
 
# la version qui autorise des arguments
atexit.register(last_word, word="Monde de merde")

Les fonctions ne sont pas garanties d’être appelées dans un ordre précis.

4 thoughts on “Lancer une fonction automatiquement à l’arrêt de Python

  • VonTenia

    “Monde de merde”… C’est sûrement un nom, si c’est une femme, je veux savoir quelle femme. Si c’est un cheval, je veux savoir dans quelle course !

  • Sam Post author

    Mais ça ne fait pas la même chose. Ca appellera les fonctions à la fin de l’éxécution de son programme. Mais par exemple, si d’autres libs ont des bouts de code qui tournent dans des threads, le finally peut se lancer bien avant que eux se terminent. atexit() garanti que les fonctions sont executées à la fermeture de la VM, pas d’un block de code.

Leave a comment

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.