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

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.

No related posts.

flattr this!

4 comments

  1. 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 !

  2. Monde de merde qui remonte dans la 3eme… Ca serait bon. Ca serait la classe même.

  3. Ou entourer tout son programme par un try: except: finally: :)
    au moins on est sûr de l’ordre d’appel des fonctions :p

  4. 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.

Flux RSS des commentaires

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Jouer à mario en attendant que les autres répondent