Junior
Donnez un exemple d'utilisation du gestionnaire de contexte en Python.
sobes.tech IA
Réponse de l'IA
# Ouverture du fichier :
# L'utilisation du gestionnaire de contexte garantit la fermeture automatique du fichier,
# même si une exception se produit.
with open('my_file.txt', 'w') as f:
# Écrire des données dans le fichier
f.write('Hello, world!\n')
f.write('Ceci est un test.')
# Exemple de création d'un gestionnaire de contexte personnalisé avec une classe :
class ManagedResource:
def __enter__(self):
print('Ressource allouée')
# Peut retourner un objet qui sera assigné à la variable après 'as'
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('Ressource libérée')
# Peut gérer les exceptions. Retourner True supprime l'exception.
return False
# Utilisation du gestionnaire de contexte créé :
with ManagedResource() as res:
print('Travail avec la ressource')
# res - c'est l'objet retourné par __enter__
# Exemple de création d'un gestionnaire de contexte personnalisé avec le décorateur contextmanager :
from contextlib import contextmanager
@contextmanager
def efficient_resource():
print('Ressource efficace allouée')
try:
yield 'Ressource efficace' # Objet qui sera retourné
finally:
print('Ressource efficace libérée')
# Utilisation du gestionnaire de contexte avec décorateur :
with efficient_resource() as eff_res:
print(f'Utilisation : {eff_res}')