Python Language Introduzione ai gestori di contesto e alla dichiarazione con


Esempio

Un gestore di contesto è un oggetto che viene avvisato quando un contesto (un blocco di codice) inizia e finisce . Di solito ne usi uno con l'istruzione with . Si prende cura della notifica.

Ad esempio, gli oggetti file sono gestori contesto. Al termine di un contesto, l'oggetto file viene chiuso automaticamente:

open_file = open(filename)
with open_file:
    file_contents = open_file.read()

# the open_file object has automatically been closed.

L'esempio sopra è di solito semplificato usando la parola chiave as :

with open(filename) as open_file:
    file_contents = open_file.read()

# the open_file object has automatically been closed.

Tutto ciò che termina l'esecuzione del blocco causa il richiamo del metodo di uscita del gestore contesto. Ciò include le eccezioni e può essere utile quando un errore causa l'uscita prematura da un file o una connessione aperti. Uscire da uno script senza chiudere correttamente i file / le connessioni è una cattiva idea, che potrebbe causare la perdita di dati o altri problemi. Utilizzando un gestore di contesto è possibile garantire che vengano sempre adottate precauzioni per prevenire danni o perdite in questo modo. Questa funzione è stata aggiunta in Python 2.5.