Decorators
Lær at bruge decorators til at ændre eller udvide funktioner
Decorators er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 1 af 5. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 5 lektioner i alt.
Introduktion til dekoratorer
Dekoratorer er en effektiv funktion i Python, der gør det muligt at ændre funktioners eller metoders adfærd. 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 modtager en anden funktion som argument 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 den indpakningsfunktion, 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 indpakningsfunktionen:
# 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))Sammenkædning af flere dekoratorer
Du kan bruge flere dekoratorer på en enkelt funktion. De anvendes i den rækkefølge, de står, 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()Oprettelse af parametriserede dekoratorer
Parametriserede dekoratorer modtager 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øretid.
- Adgangskontrol, f.eks. kontrol af brugerens tilladelser.
- 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 dokumentationsstreng (brug
functools.wraps). - At bruge dekoratorer unødvendigt til simple opgaver.
- At glemme at håndtere argumenter i indpakningsfunktionen.
Hvad har du 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, parametriserede og kædede dekoratorer.
- Almindelige anvendelser af og indbyggede dekoratorer i Python.
Godt gået! 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
- 53
- Lektioner
- 225
Ofte stillede spørgsmål
Er lektionen “Decorators” gratis?
Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Decorators”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-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 Lær AI med Python 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å Lær AI med Python?
Der kræves ingen tidligere erfaring. Lær AI med Python 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 Lær AI med Python-lektion?
Ja. Alle Lær AI med Python-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