Contextmanagers gebruiken

Functies schrijven in Python

Shayne Miel

Software Architect @ Duo Security

Wat is een contextmanager?

Een contextmanager:

  • Maakt een context aan
  • Voert je code uit
  • Verwijdert de context
Functies schrijven in Python

Een verzorgde party

lege kamer

Functies schrijven in Python

Een verzorgde party

kamer met catering

Functies schrijven in Python

Een verzorgde party

kamer met feest

Functies schrijven in Python

Een verzorgde party

kamer met catering

Functies schrijven in Python

Een verzorgde party

lege kamer

Functies schrijven in Python

Verzorgde party als context

Contextmanagers:

  • Maken een context aan
  • Voeren je code uit
  • Verwijderen de context

Cateraars:

  • Zetten tafels met eten en drinken neer
  • Laten jou en je vrienden feesten
  • Ruimen op en halen de tafels weg
Functies schrijven in Python

Een praktijkvoorbeeld

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

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

open() doet drie dingen:

  • Maakt een context aan door een file te openen
  • Laat je willekeurige code op die file draaien
  • Verwijdert de context door de file te sluiten
Functies schrijven in Python

Een contextmanager gebruiken

with
Functies schrijven in Python

Een contextmanager gebruiken

with <context-manager>()
Functies schrijven in Python

Een contextmanager gebruiken

with <context-manager>(<args>)
Functies schrijven in Python

Een contextmanager gebruiken

with <context-manager>(<args>):
Functies schrijven in Python

Een contextmanager gebruiken

with <context-manager>(<args>):
  # Run your code here
  # This code is running "inside the context"
Functies schrijven in Python

Een contextmanager gebruiken

with <context-manager>(<args>):
  # Run your code here
  # This code is running "inside the context"

# This code runs after the context is removed
Functies schrijven in Python

Een contextmanager gebruiken

with <context-manager>(<args>) as <variable-name>:
  # Run your code here
  # This code is running "inside the context"

# This code runs after the context is removed
with open('my_file.txt') as my_file:
  text = my_file.read()
  length = len(text)

print('The file is {} characters long'.format(length))
Functies schrijven in Python

Laten we oefenen!

Functies schrijven in Python

Preparing Video For Download...