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 ?
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.
“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 !
Monde de merde qui remonte dans la 3eme… Ca serait bon. Ca serait la classe même.
Ou entourer tout son programme par un try: except: finally: :)
au moins on est sûr de l’ordre d’appel des fonctions :p
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.