Decorators
Lær at bruge decorators til at ændre eller udvide funktioner
Decorators er en gratis Python For Kids-lektion på CoddyKit. Dette er lektion 1 af 5. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python For Kids, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python For Kids-kurset indeholder 5 lektioner i alt.
Introduktion til dekoratorer
Dekoratorer er en effektiv funktion i Python, som giver dig mulighed for at ændre funktionsmåden for funktioner eller metoder. De bruges ofte til at føje funktionalitet til funktioner uden at ændre deres kode.
I denne lektion lærer du, hvad dekoratorer er, hvordan du bruger dem, og hvordan du opretter dine egne dekoratorer.

Hvad er en dekorator
En dekorator er en funktion, der tager en anden funktion som input og returnerer en ny funktion med ekstra funktionalitet. Den bruges 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()Sådan fungerer dekoratorer
Når du bruger en dekorator, erstatter Python den oprindelige funktion med wrapper-funktionen, 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()Brug af dekoratorer med argumenter
Dekoratorer kan fungere med funktioner, der tager argumenter, ved at bruge *args og **kwargs i wrapper-funktionen:
# 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))Kædning af flere dekoratorer
Du kan bruge flere dekoratorer på én funktion. De anvendes i den rækkefølge, de står i, fra top til bund:
# 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()Oprettelse af parametriserede dekoratorer
Parametriserede dekoratorer tager argumenter og giver mulighed for mere fleksibel funktionalitet:
# 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()Almindelige anvendelser af dekoratorer
Dekoratorer bruges ofte til:
- Logning af funktionskald og deres argumenter.
- Måling af funktioners kørselstid.
- Adgangskontrol (f.eks. kontrol af brugertilladelser).
- Cachelagring af resultater for at forbedre ydeevnen.
Indbyggede dekoratorer i Python
Python indeholder nogle indbyggede dekoratorer, herunder:
@staticmethod: Definerer en statisk metode.@classmethod: Definerer en klassemetode.@property: Definerer en egenskabsmetode.
Almindelige fejl med dekoratorer
Her er nogle fejl, du bør undgå:
- Ikke at bevare den oprindelige funktions navn og docstring (brug
functools.wraps). - At bruge dekoratorer unødvendigt til simple opgaver.
- At glemme at håndtere argumenter i wrapper-funktionen.
Hvad har vi lært?
I denne lektion har du lært:
- Hvad dekoratorer er, og hvordan de fungerer i Python.
- Hvordan du opretter og bruger grundlæggende, parameteriserede og kædede dekoratorer.
- Almindelige anvendelser af og indbyggede dekoratorer i Python.
Godt klaret! Lad os gå videre til det næste emne.

Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 22
- Lektioner
- 94
Ofte stillede spørgsmål
Er lektionen “Decorators” gratis?
Ja — hele teksten til “Decorators” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python For Kids-kurset, skal du opgradere til CoddyKit PRO. Python For Kids-kurset indeholder 5 lektioner i alt.
Hvad lærer jeg i “Decorators”?
Lær at bruge decorators til at ændre eller udvide funktioner Du øver dig i Python For Kids med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Python For Kids?
Der kræves ingen tidligere erfaring. Python For Kids på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 5.
Hvor lang tid tager lektionen “Decorators”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Python For Kids-lektion?
Ja. Alle Python For Kids-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Decorators
- Generators
- Context managers (with-udtryk)
- Comprehensions (lister, sets og dictionaries)
- Iterators og iterables