Kontexthanterare (with-satser)
Upptäck kontexthanterarnas möjligheter vid resurshantering
Kontexthanterare (with-satser) är en gratis lektion i Python For Kids på CoddyKit. Detta är lektion 3 av 5. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python For Kids, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python For Kids innehåller totalt 5 lektioner.
Introduktion till kontexthanterare
Kontexthanterare i Python hjälper dig att hantera resurser som filer, nätverksanslutningar och databasanslutningar. De säkerställer att resurser hämtas och frigörs korrekt, även om ett fel inträffar.
I den här lektionen lär du dig att använda och skapa kontexthanterare med hjälp av satsen with.

Vad är en kontexthanterare?
En kontexthanterare är en konstruktion som gör det möjligt att effektivt allokera och frigöra resurser. Den använder satsen with för att omsluta kod som hanterar resurser.
# 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 blockVarför använda kontexthanterare?
Kontexthanterare hjälper dig att:
- Säkerställa att resurser rensas upp korrekt.
- Minska risken för resursläckor.
- Skriva renare och mer lättläst kod.
Inbyggda kontexthanterare
Python innehåller flera inbyggda kontexthanterare, till exempel:
open: Hanterar filoperationer.decimal.localcontext: Hanterar precisionsinställningar för decimaloperationer.
Skapa en anpassad kontexthanterare
Du kan skapa en anpassad kontexthanterare med hjälp av en klass med metoderna __enter__ och __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")Hantera undantag i kontexthanterare
Anpassade kontexthanterare kan hantera undantag med hjälp 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")Använda contextlib
Modulen contextlib innehåller verktyg som förenklar skapandet av kontexthanterare:
# 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")Bästa praxis för kontexthanterare
Här är några rekommendationer:
- Använd inbyggda kontexthanterare när det är möjligt.
- Hantera undantag korrekt i anpassade kontexthanterare.
- Använd modulen
contextlibför enklare syntax.
Vanliga misstag med kontexthanterare
Här är några misstag du bör undvika:
- Att inte använda
withför resurshantering. - Att inte implementera
__exit__korrekt i anpassade kontexthanterare. - Att ignorera undantag i
__exit__.
Vad har du lärt dig?
I den här lektionen har du lärt dig:
- Vad kontexthanterare är och hur de fungerar med satsen
with. - Hur du skapar anpassade kontexthanterare med
__enter__och__exit__. - Hur du använder modulen
contextlibför att förenkla skapandet av kontexthanterare.
Bra jobbat! Nu går vi vidare till nästa ämne.

Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 22
- Lektioner
- 94
Vanliga frågor
Är lektionen ”Kontexthanterare (with-satser)” gratis?
Ja – hela texten till ”Kontexthanterare (with-satser)” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python For Kids, kan Ni uppgradera till CoddyKit PRO. Kursen i Python For Kids innehåller totalt 5 lektioner.
Vad lär jag mig i ”Kontexthanterare (with-satser)”?
Upptäck kontexthanterarnas möjligheter vid resurshantering Ni övar på Python For Kids med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Python For Kids?
Du behöver inga förkunskaper. Utbildningen i Python For Kids på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 5.
Hur lång tid tar lektionen ”Kontexthanterare (with-satser)”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Python For Kids-lektionen?
Ja. Varje Python For Kids-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Dekoratorer
- Generatorer
- Kontexthanterare (with-satser)
- Comprehensions (listor, mängder och lexikon)
- Iteratorer och itererbara objekt