À quoi sert le mot-clé "with" en python ?
Exemple de : http://docs.python.org/tutorial/inputoutput.html
>>> with open('/tmp/workfile', 'r') as f:
... read_data = f.read()
>>> f.closed
True
À quoi sert le mot-clé "with" en python ?
Exemple de : http://docs.python.org/tutorial/inputoutput.html
>>> with open('/tmp/workfile', 'r') as f:
... read_data = f.read()
>>> f.closed
True
En python, le with
est utilisé pour travailler avec des ressources non gérées (comme les flux de fichiers). Il est similaire au mot-clé using
en VB.NET et C#. Elle permet de s'assurer qu'une ressource est "nettoyée" lorsque le code qui l'utilise termine son exécution, même si des exceptions sont lancées. Elle fournit un "sucre syntaxique" pour les éléments suivants try/finally
blocs.
Desde Docs Python :
L'instruction "with" clarifie le code qui, auparavant, utilisait des blocs try...finally pour garantir l'exécution du code de nettoyage. Dans cette section, j'aborderai l'instruction telle qu'elle est couramment utilisée. Dans la section suivante, j'examinerai les détails de l'implémentation et montrerai comment écrire des objets à utiliser avec cette instruction.
L'instruction "avec" est une structure de flux de contrôle dont la structure de base est la suivante :
avec l'expression [comme variable] : avec bloc
L'expression est évaluée, et il doit en résulter un objet qui prend en charge le protocole de gestion du contexte (c'est-à-dire qui possède les méthodes __enter__() et __exit__()).
Mise à jour Correction de l'appel VB selon le commentaire de Scott Wisniewski. Je confondais en effet with
con using
.
C'est pratique lorsque vous avez deux opérations connexes que vous souhaitez exécuter par paire, avec un bloc de code entre les deux. L'exemple classique est l'ouverture d'un fichier, la manipulation de ce dernier, puis la le fermer :
with open('output.txt', 'w') as f:
f.write('Hi there!')
L'instruction with ci-dessus fermera automatiquement le fichier après le bloc de code imbriqué. (L'avantage de l'utilisation de l'instruction with est qu'elle garantit la fermeture du fichier, quelle que soit la façon dont le bloc imbriqué se termine. Si une exception survient avant la fin du bloc, le fichier sera fermé avant que l'exception ne soit prise en compte par un gestionnaire d'exception externe. Si le bloc imbriqué devait contenir une instruction de retour, ou une instruction continue ou break, l'instruction with fermerait automatiquement le fichier dans ces cas également.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.