Kontexthanterare (with-satser)
Upptäck kontexthanterarnas möjligheter vid resurshantering
Kontexthanterare (with-satser) är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 3 av 5. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 5 lektioner.
Introduktion till kontexthanterare
Kontexthanterare i Python hjälper dig att hantera resurser som filer, nätverksanslutningar och databasanslutningar. De ser till 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 with-satsen.

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 with-satsen 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 filåtgärder.decimal.localcontext: Hanterar precisionsinställningar för decimalberäkningar.
Skapa en anpassad kontexthanterare
Du kan skapa en anpassad kontexthanterare med hjälp av en klass som har 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 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 rekommenderade metoder:
- 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 vi lärt oss?
I den här lektionen har du lärt dig:
- Vad kontexthanterare är och hur de fungerar med
with-satsen. - Hur du skapar anpassade kontexthanterare med hjälp av
__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
- 53
- Lektioner
- 225
Vanliga frågor
Är lektionen ”Kontexthanterare (with-satser)” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Kontexthanterare (with-satser)”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 5 lektioner.
Vad lär jag mig i ”Kontexthanterare (with-satser)”?
Upptäck kontexthanterarnas möjligheter vid resurshantering Ni övar på Lär Er AI med Python 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 Lär Er AI med Python?
Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python 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 Lär Er AI med Python-lektionen?
Ja. Varje Lär Er AI med Python-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