Używanie menedżerów kontekstu

Pisanie funkcji w Pythonie

Shayne Miel

Software Architect @ Duo Security

Czym jest menedżer kontekstu?

Menedżer kontekstu:

  • Konfiguruje kontekst
  • Uruchamia kod
  • Usuwa kontekst
Pisanie funkcji w Pythonie

Catering na przyjęciu

puste pomieszczenie

Pisanie funkcji w Pythonie

Catering na przyjęciu

pomieszczenie z cateringiem

Pisanie funkcji w Pythonie

Catering na przyjęciu

pomieszczenie z imprezą

Pisanie funkcji w Pythonie

Catering na przyjęciu

pomieszczenie z cateringiem

Pisanie funkcji w Pythonie

Catering na przyjęciu

puste pomieszczenie

Pisanie funkcji w Pythonie

Catering jako kontekst

Menedżery kontekstu:

  • Konfigurują kontekst
  • Uruchamiają kod
  • Usuwają kontekst

Catering:

  • Ustawia stoły z jedzeniem i napojami
  • Pozwala bawić się gościom
  • Sprząta i usuwa stoły
Pisanie funkcji w Pythonie

Przykład z życia wzięty

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

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

open() wykonuje trzy rzeczy:

  • Konfiguruje kontekst, otwierając plik
  • Umożliwia wykonanie dowolnego kodu na pliku
  • Usuwa kontekst, zamykając plik
Pisanie funkcji w Pythonie

Używanie menedżera kontekstu

with
Pisanie funkcji w Pythonie

Używanie menedżera kontekstu

with <context-manager>()
Pisanie funkcji w Pythonie

Używanie menedżera kontekstu

with <context-manager>(<args>)
Pisanie funkcji w Pythonie

Używanie menedżera kontekstu

with <context-manager>(<args>):
Pisanie funkcji w Pythonie

Używanie menedżera kontekstu

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

Używanie menedżera kontekstu

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

# This code runs after the context is removed
Pisanie funkcji w Pythonie

Używanie menedżera kontekstu

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))
Pisanie funkcji w Pythonie

Czas na ćwiczenia!

Pisanie funkcji w Pythonie

Preparing Video For Download...