Python Academy · leksjon

Kontekstbehandlere (with-setninger)

Oppdag kraften i kontekstbehandlere for håndtering av ressurser.

Leksjon 3 av 511 trinn

Kontekstbehandlere (with-setninger) er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 3 av 5. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 5 leksjoner.

Introduksjon til kontekstbehandlere

Kontekstbehandlere i Python hjelper Dem med å håndtere ressurser som filer, nettverkstilkoblinger og databasetilkoblinger. De sørger for at ressurser anskaffes og frigjøres på riktig måte, selv om det oppstår en feil.

I denne leksjonen lærer De hvordan De bruker og oppretter kontekstbehandlere ved hjelp av with-setningen.

Kontekstbehandlere (with-setninger) — illustrasjon 1

Hva er en kontekstbehandler?

En kontekstbehandler er en konstruksjon som lar Dem tildele og frigjøre ressurser effektivt. Den bruker with-setningen til å omslutte kode for ressurshåndtering.

# Using a context manager with a file
with open("example.txt", "r") as file:
    content = file.read()
    print(content)  # File is automatically closed after the block

Hvorfor bruke kontekstbehandlere?

Kontekstbehandlere hjelper Dem med å:

  • Sørge for riktig opprydding av ressurser.
  • Redusere risikoen for ressurslekkasjer.
  • Skrive renere og mer lesbar kode.

Innebygde kontekstbehandlere

Python inneholder flere innebygde kontekstbehandlere, for eksempel:

  • open: Håndterer filoperasjoner.
  • decimal.localcontext: Håndterer presisjonsinnstillinger for desimaloperasjoner.

Opprette en egendefinert kontekstbehandler

De kan opprette en egendefinert kontekstbehandler ved å bruke en klasse med metodene __enter__ og __exit__:

# Custom context manager class
class CustomManager:
    def __enter__(self):
        print("Entering the context")
        return self

    def __exit__(self, exc_type, exc_value, traceback):
        print("Exiting the context")

with CustomManager() as manager:
    print("Inside the context")

Håndtere unntak i kontekstbehandlere

Egendefinerte kontekstbehandlere kan håndtere unntak ved hjelp av metoden __exit__:

# Handling exceptions in a context manager
class ExceptionManager:
    def __enter__(self):
        print("Entering the context")
        return self

    def __exit__(self, exc_type, exc_value, traceback):
        if exc_type:
            print(f"An exception occurred: {exc_value}")
        print("Exiting the context")
        return True  # Suppresses the exception

with ExceptionManager():
    raise ValueError("Something went wrong")

Bruke Contextlib

Modulen contextlib inneholder verktøy som forenkler opprettingen av kontekstbehandlere:

# Using contextlib to create a context manager
from contextlib import contextmanager

@contextmanager
def custom_context():
    print("Entering the context")
    yield
    print("Exiting the context")

with custom_context():
    print("Inside the context")

Beste praksis for kontekstbehandlere

Her er noen anbefalte fremgangsmåter:

  • Bruk innebygde kontekstbehandlere når det er mulig.
  • Håndter unntak riktig i egendefinerte kontekstbehandlere.
  • Bruk modulen contextlib for enklere syntaks.

Vanlige feil med kontekstbehandlere

Her er noen feil De bør unngå:

  • Ikke bruke with til ressurshåndtering.
  • Ikke implementere __exit__ riktig i egendefinerte kontekstbehandlere.
  • Ignorere unntak i __exit__.

Hva har De lært?

I denne leksjonen har De lært:

  • Hva kontekstbehandlere er, og hvordan de fungerer med with-setningen.
  • Hvordan De oppretter egendefinerte kontekstbehandlere ved hjelp av __enter__ og __exit__.
  • Hvordan De bruker modulen contextlib til å forenkle opprettingen av kontekstbehandlere.

Godt jobbet! La oss gå videre til neste tema.

Kontekstbehandlere (with-setninger) — illustrasjon 11
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Kontekstbehandlere (with-setninger)» gratis?

Ja – hele teksten i «Kontekstbehandlere (with-setninger)» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 5 leksjoner.

Hva lærer jeg i «Kontekstbehandlere (with-setninger)»?

Oppdag kraften i kontekstbehandlere for håndtering av ressurser. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 5.

Hvor lang tid tar leksjonen «Kontekstbehandlere (with-setninger)»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Dekoratorer
  2. Generatorer
  3. Kontekstbehandlere (with-setninger)
  4. Comprehensions (lister, mengder og ordbøker)
  5. Iteratorer og itererbare objekter
← Tilbake til Python Academy