Dekoratorer
Lær hvordan du bruker dekoratorer til å endre eller utvide funksjoner.
Dekoratorer er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 1 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 dekoratorer
Dekoratorer er en kraftig funksjon i Python som lar deg endre oppførselen til funksjoner eller metoder. De brukes ofte til å legge til funksjonalitet i funksjoner uten å endre koden deres.
I denne leksjonen lærer du hva dekoratorer er, hvordan du bruker dem, og hvordan du oppretter dine egne dekoratorer.

Hva er en dekorator?
En dekorator er en funksjon som tar en annen funksjon som inndata og returnerer en ny funksjon med ekstra funksjonalitet. Den brukes ofte sammen med syntaksen @decorator_name.
# Basic example of a decorator
def decorator(func):
def wrapper():
print("Before the function call")
func()
print("After the function call")
return wrapper
@decorator
def say_hello():
print("Hello!")
say_hello()Slik fungerer dekoratorer
Når du bruker en dekorator, erstatter Python den opprinnelige funksjonen med wrapper-funksjonen som dekoratoren returnerer.
# How decorators work
def decorator(func):
def wrapper():
print("Wrapper called")
func()
return wrapper
@decorator
def greet():
print("Greetings!")
print(greet.__name__) # Outputs: wrapper
greet()Bruke dekoratorer med argumenter
Dekoratorer kan fungere med funksjoner som tar argumenter, ved å bruke *args og **kwargs i wrapper-funksjonen:
# Decorator for functions with arguments
def decorator(func):
def wrapper(*args, **kwargs):
print(f"Arguments: {args}, {kwargs}")
return func(*args, **kwargs)
return wrapper
@decorator
def add(a, b):
return a + b
print(add(3, 5))Kjeding av flere dekoratorer
De kan bruke flere dekoratorer på én enkelt funksjon. De brukes i den rekkefølgen de vises, fra øverst til nederst:
# Chaining multiple decorators
def decorator1(func):
def wrapper():
print("Decorator 1")
func()
return wrapper
def decorator2(func):
def wrapper():
print("Decorator 2")
func()
return wrapper
@decorator1
@decorator2
def greet():
print("Hello!")
greet()Opprette parametriserte dekoratorer
Parametriserte dekoratorer tar argumenter og gir mer fleksibel funksjonalitet:
# Parameterized decorator
def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
func(*args, **kwargs)
return wrapper
return decorator
@repeat(3)
def say_hello():
print("Hello!")
say_hello()Vanlige bruksområder for dekoratorer
Dekoratorer brukes ofte til:
- Logging av funksjonskall og argumentene deres.
- Måling av funksjoners kjøretid.
- Tilgangskontroll (for eksempel kontroll av brukertillatelser).
- Bufring av resultater for bedre ytelse.
Innebygde dekoratorer i Python
Python har flere innebygde dekoratorer, blant annet:
@staticmethod: Definerer en statisk metode.@classmethod: Definerer en klassemetode.@property: Definerer en egenskapsmetode.
Vanlige feil med dekoratorer
Her er noen feil De bør unngå:
- Ikke bevare navnet og dokumentasjonsstrengen til den opprinnelige funksjonen (bruk
functools.wraps). - Bruke dekoratorer unødvendig til enkle oppgaver.
- Glemme å håndtere argumenter i wrapper-funksjonen.
Hva har De lært?
I denne leksjonen har De lært:
- Hva dekoratorer er, og hvordan de fungerer i Python.
- Hvordan De oppretter og bruker grunnleggende, parametriserte og kjedede dekoratorer.
- Vanlige bruksområder for og innebygde dekoratorer i Python.
Godt jobbet! La oss gå videre til neste tema.

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 «Dekoratorer» gratis?
Ja – hele teksten i «Dekoratorer» 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 «Dekoratorer»?
Lær hvordan du bruker dekoratorer til å endre eller utvide funksjoner. 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 1 av 5.
Hvor lang tid tar leksjonen «Dekoratorer»?
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
- Dekoratorer
- Generatorer
- Kontekstbehandlere (with-setninger)
- Comprehensions (lister, mengder og ordbøker)
- Iteratorer og itererbare objekter