Använda kontexthanterare

Att skriva funktioner i Python

Shayne Miel

Software Architect @ Duo Security

Vad är en kontexthanterare?

En kontexthanterare:

  • Skapar en kontext
  • Kör din kod
  • Tar bort kontexten
Att skriva funktioner i Python

En fest med cateringservice

tomt rum

Att skriva funktioner i Python

En fest med cateringservice

rum med catering

Att skriva funktioner i Python

En fest med cateringservice

rum med fest

Att skriva funktioner i Python

En fest med cateringservice

rum med catering

Att skriva funktioner i Python

En fest med cateringservice

tomt rum

Att skriva funktioner i Python

Festen som kontext

Kontexthanterare:

  • Skapar en kontext
  • Kör din kod
  • Tar bort kontexten

Cateringpersonal:

  • Dukar upp bord med mat och dryck
  • Låter dig och dina vänner festa
  • Städar och plockar bort borden
Att skriva funktioner i Python

Ett verkligt exempel

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

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

open() gör tre saker:

  • Skapar en kontext genom att öppna en fil
  • Låter dig köra valfri kod på filen
  • Tar bort kontexten genom att stänga filen
Att skriva funktioner i Python

Använda en kontexthanterare

with
Att skriva funktioner i Python

Använda en kontexthanterare

with <context-manager>()
Att skriva funktioner i Python

Använda en kontexthanterare

with <context-manager>(<args>)
Att skriva funktioner i Python

Använda en kontexthanterare

with <context-manager>(<args>):
Att skriva funktioner i Python

Använda en kontexthanterare

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

Använda en kontexthanterare

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

# This code runs after the context is removed
Att skriva funktioner i Python

Använda en kontexthanterare

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))
Att skriva funktioner i Python

Nu kör vi en övning!

Att skriva funktioner i Python

Preparing Video For Download...