Il context manager è un costrutto del linguaggio Python che permette di gestire le risorse in modo sicuro e pulito. Il context manager è un oggetto che implementa due metodi speciali __enter__
e __exit__
. Il metodo __enter__
viene eseguito all’ingresso del blocco di codice, mentre il metodo __exit__
viene eseguito all’uscita del blocco di codice. Il context manager può essere utilizzato con il costrutto with
per garantire la corretta gestione delle risorse.
class MyContextManager:
def __enter__(self):
print('Enter')
return self
def __exit__(self, exc_type, exc_value, traceback):
print('Exit')
with MyContextManager() as cm:
print('Inside')
Il costrutto with
è utile per garantire la corretta gestione delle risorse, ad esempio la chiusura di un file o la disconnessione di un database. Il costrutto with
è equivalente a un blocco try
con un blocco finally
per la chiusura delle risorse.
try:
cm = MyContextManager()
cm.__enter__()
print('Inside')
finally:
cm.__exit__(None, None, None)
Il context manager può essere utilizzato per definire un contesto di esecuzione, ad esempio un contesto di transazione per un database. Il context manager può essere utilizzato per definire un contesto di esecuzione, ad esempio un contesto di transazione per un database.
class Transaction
def __enter__(self):
self.conn = connect()
self.conn.begin()
return self.conn
def __exit__(self, exc_type, exc_value, traceback):
if exc_type is None:
self.conn.commit()
else:
self.conn.rollback()
self.conn.close()
with Transaction() as conn:
conn.execute('INSERT INTO table VALUES (1, 2, 3)')
Il context manager è un costrutto del linguaggio Python che permette di gestire le risorse in modo sicuro e pulito. Il context manager è un oggetto che implementa due metodi speciali __enter__
e __exit__
. Il context manager può essere utilizzato con il costrutto with
per garantire la corretta gestione delle risorse.
HOMEPAGE | LEZIONE SUCCESSIVA |