Utiliser des gestionnaires de contexte

Écrire des fonctions en Python

Shayne Miel

Software Architect @ Duo Security

Qu'est-ce qu'un gestionnaire de contexte ?

Un gestionnaire de contexte :

  • Met en place un contexte
  • Exécute votre code
  • Retire le contexte
Écrire des fonctions en Python

Une fête avec traiteur

pièce vide

Écrire des fonctions en Python

Une fête avec traiteur

pièce préparée

Écrire des fonctions en Python

Une fête avec traiteur

pièce en fête

Écrire des fonctions en Python

Une fête avec traiteur

pièce préparée

Écrire des fonctions en Python

Une fête avec traiteur

pièce vide

Écrire des fonctions en Python

La fête comme contexte

Les gestionnaires de contexte :

  • Mettent en place un contexte
  • Exécutent votre code
  • Retirent le contexte

Les traiteurs :

  • Installent les tables, nourriture et boisson
  • Vous laissent faire la fête avec vos ami(e)s
  • Rangent et retirent les tables
Écrire des fonctions en Python

Un exemple concret

with open('my_file.txt') as my_file:
  text = my_file.read()
  length = len(text)

print('The file is {} characters long'.format(length))

open() fait trois choses :

  • Met en place un contexte en ouvrant un fichier
  • Vous permet d'exécuter tout code voulu sur ce fichier
  • Retire le contexte en fermant le fichier
Écrire des fonctions en Python

Utiliser un gestionnaire de contexte

with
Écrire des fonctions en Python

Utiliser un gestionnaire de contexte

with <context-manager>()
Écrire des fonctions en Python

Utiliser un gestionnaire de contexte

with <context-manager>(<args>)
Écrire des fonctions en Python

Utiliser un gestionnaire de contexte

with <context-manager>(<args>):
Écrire des fonctions en Python

Utiliser un gestionnaire de contexte

with <context-manager>(<args>):
  # Exécutez votre code ici
  # Ce code s'exécute « dans le contexte »
Écrire des fonctions en Python

Utiliser un gestionnaire de contexte

with <context-manager>(<args>):
  # Exécutez votre code ici
  # Ce code s'exécute « dans le contexte »

# Ce code s'exécute après le retrait du contexte
Écrire des fonctions en Python

Utiliser un gestionnaire de contexte

with <context-manager>(<args>) as <variable-name>:
  # Exécutez votre code ici
  # Ce code s'exécute « dans le contexte »

# Ce code s'exécute après le retrait du contexte
with open('my_file.txt') as my_file:
  text = my_file.read()
  length = len(text)

print('The file is {} characters long'.format(length))
Écrire des fonctions en Python

Passons à la pratique !

Écrire des fonctions en Python

Preparing Video For Download...