Lær AI med Python · Lektion

Decorators

Lær at bruge decorators til at ændre eller udvide funktioner

Lektion 1 af 511 trin

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.

Decorators — illustration 1

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.

Decorators — illustration 11
Gratis at komme i gang

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

  1. Decorators
  2. Generators
  3. Context managers (with-udtryk)
  4. Comprehensions (lister, sets og dictionaries)
  5. Iterators og iterables
← Tilbage til Lær AI med Python