Lär Er AI med Python · Lektion

Dekoratorer

Lär er använda dekoratorer för att ändra eller utöka funktioner

Lektion 1 av 511 steg

Dekoratorer är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 1 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 dekoratorer

Dekoratorer är en kraftfull funktion i Python som låter dig ändra beteendet hos funktioner eller metoder. De används ofta för att lägga till funktionalitet i funktioner utan att ändra deras kod.

I den här lektionen lär du dig vad dekoratorer är, hur du använder dem och hur du skapar egna dekoratorer.

Dekoratorer — illustration 1

Vad är en dekorator?

En dekorator är en funktion som tar en annan funktion som indata och returnerar en ny funktion med utökad funktionalitet. Den används ofta med syntaxen @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å fungerar dekoratorer

När du använder en dekorator ersätter Python den ursprungliga funktionen med den wrapper-funktion som dekoratorn returnerar.

# 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()

Använda dekoratorer med argument

Dekoratorer kan fungera med funktioner som tar argument genom att använda *args och **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))

Kedja flera dekoratorer

Du kan använda flera dekoratorer på en och samma funktion. De tillämpas i den ordning de står, uppifrån och ned:

# 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()

Skapa parametriserade dekoratorer

Parametriserade dekoratorer tar emot argument och möjliggör mer flexibel 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()

Vanliga användningsområden för dekoratorer

Dekoratorer används ofta för:

  • Att logga funktionsanrop och deras argument.
  • Att mäta funktioners körningstid.
  • Åtkomstkontroll (till exempel kontroll av användarbehörigheter).
  • Att cachelagra resultat för bättre prestanda.

Inbyggda dekoratorer i Python

Python innehåller flera inbyggda dekoratorer, bland annat:

  • @staticmethod: Definierar en statisk metod.
  • @classmethod: Definierar en klassmetod.
  • @property: Definierar en property-metod.

Vanliga misstag med dekoratorer

Här är några misstag du bör undvika:

  • Inte bevara den ursprungliga funktionens namn och docstring (använd functools.wraps).
  • Använda dekoratorer i onödan för enkla uppgifter.
  • Glömma att hantera argument i wrapper-funktionen.

Vad har du lärt dig?

I den här lektionen har du lärt dig:

  • Vad dekoratorer är och hur de fungerar i Python.
  • Hur du skapar och använder grundläggande, parametriserade och kedjade dekoratorer.
  • Vanliga användningsområden och inbyggda dekoratorer i Python.

Bra jobbat! Nu går vi vidare till nästa ämne.

Dekoratorer — illustration 11
Gratis att börja

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 ”Dekoratorer” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Dekoratorer”, 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 ”Dekoratorer”?

Lär er använda dekoratorer för att ändra eller utöka funktioner 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 1 av 5.

Hur lång tid tar lektionen ”Dekoratorer”?

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

  1. Dekoratorer
  2. Generatorer
  3. Kontexthanterare (with-satser)
  4. Comprehensions (listor, mängder och lexikon)
  5. Iteratorer och itererbara objekt
← Tillbaka till Lär Er AI med Python