3.5.1 atexit Esempi

Il seguente esempio dimostra come un modulo possa inizializzare un contatore da un file, quando questo venga importato, e salvare automaticamente il valore aggiornato del contatore, quando il programma termini senza affidarsi ad un'applicazione che faccia un'esplicita chiamata all'interno del modulo durante la chiusura.

try:
    _count = int(open("/tmp/counter").read())
except IOError:
    _count = 0

def incrcounter(n):
    global _count
    _count = _count + n

def savecounter():
    open("/tmp/counter", "w").write("%d" % _count)

import atexit
atexit.register(savecounter)

Gli argomenti chiave e posizionali possono anche venire passati a register(), per venire poi passati attraverso la funzione registrata quando questa viene chiamata:

def goodbye(nome, aggettivo):
    print 'Ciao, %s,  stato %s incontrarti.' % (nome, aggettivo)

import atexit
atexit.register(goodbye, 'Donny', 'nice')

# or:
atexit.register(goodbye, aggettivo='nice', nome='Donny')
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.