Kontextmanager verwenden

Funktionen in Python schreiben

Shayne Miel

Software Architect @ Duo Security

Was ist ein Kontextmanager?

Ein Kontextmanager:

  • Richtet einen Kontext ein
  • Führt deinen Code aus
  • Entfernt den Kontext
Funktionen in Python schreiben

Eine Party mit Catering

leerer Raum

Funktionen in Python schreiben

Eine Party mit Catering

Zimmer mit Verpflegung

Funktionen in Python schreiben

Eine Party mit Catering

Zimmerparty

Funktionen in Python schreiben

Eine Party mit Catering

Zimmer mit Verpflegung

Funktionen in Python schreiben

Eine Party mit Catering

leerer Raum

Funktionen in Python schreiben

Catering-Party als Kontext

Kontextmanager:

  • Richtet Kontext ein
  • Lässt deinen Code laufen
  • Räumt den Kontext auf

Caterer:

  • Stellt die Tische mit Essen und Getränken auf
  • Ermöglicht dir und deinen Freunden eine Party
  • Säubert die Tische und räumt auf
Funktionen in Python schreiben

Ein Praxisbeispiel

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

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

open() macht drei Dinge:

  • Richtet einen Kontext ein, indem eine Datei geöffnet wird
  • Lässt dich jeden beliebigen Code mit dieser Datei ausführen
  • Schließt die Datei und löscht den Kontext
Funktionen in Python schreiben

Mit einem Kontextmanager arbeiten

with
Funktionen in Python schreiben

Mit einem Kontextmanager arbeiten

with <context-manager>()
Funktionen in Python schreiben

Mit einem Kontextmanager arbeiten

with <context-manager>(<args>)
Funktionen in Python schreiben

Mit einem Kontextmanager arbeiten

with <context-manager>(<args>):
Funktionen in Python schreiben

Mit einem Kontextmanager arbeiten

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

Mit einem Kontextmanager arbeiten

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

# This code runs after the context is removed
Funktionen in Python schreiben

Mit einem Kontextmanager arbeiten

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))
Funktionen in Python schreiben

Lass uns üben!

Funktionen in Python schreiben

Preparing Video For Download...