Python For Kids · leksjon

Dekoratorer

Lær hvordan De kan bruke dekoratorer til å endre eller utvide funksjoner

Leksjon 1 av 511 trinn

Dekoratorer er en gratis leksjon i Python For Kids 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 For Kids, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python For Kids inneholder totalt 5 leksjoner.

Introduksjon til dekoratorer

Dekoratorer er en kraftig funksjon i Python som lar deg endre virkemåten 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 lager dine egne dekoratorer.

Dekoratorer — illustrasjon 1

Hva er en dekorator?

En dekorator er en funksjon som tar en annen funksjon som input og returnerer en ny funksjon med ekstra funksjonalitet. Den brukes ofte 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 at du bruker *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))

Kjede sammen flere dekoratorer

Du kan bruke flere dekoratorer på én 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 parameteriserte dekoratorer

Parameteriserte dekoratorer tar argumenter og gjør funksjonaliteten mer fleksibel:

# 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:

  • Loggføring av funksjonskall og argumentene deres.
  • Måling av funksjoners kjøretid.
  • Tilgangskontroll, for eksempel kontroll av brukertillatelser.
  • Mellomlagring 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 du bør unngå:

  • Ikke bevare den opprinnelige funksjonens navn og docstring (bruk functools.wraps).
  • Bruke dekoratorer unødvendig til enkle oppgaver.
  • Glemme å håndtere argumenter i wrapper-funksjonen.

Hva har vi lært?

I denne leksjonen har du lært:

  • Hva dekoratører er, og hvordan de fungerer i Python.
  • Hvordan du oppretter og bruker grunnleggende, parametriserte og kjedede dekoratører.
  • Vanlige bruksområder for og innebygde dekoratører i Python.

Godt jobbet! La oss gå videre til neste emne.

Dekoratorer — illustrasjon 11
Gratis å komme i gang

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
22
Leksjoner
94

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 For Kids-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python For Kids inneholder totalt 5 leksjoner.

Hva lærer jeg i «Dekoratorer»?

Lær hvordan De kan bruke dekoratorer til å endre eller utvide funksjoner Du øver på Python For Kids 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 For Kids?

Ingen tidligere erfaring er nødvendig. Python For Kids 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 For Kids-leksjonen?

Ja. Alle Python For Kids-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

  1. Dekoratorer
  2. Generatorer
  3. Context managers (with-setninger)
  4. Comprehensions (liste, sett og ordbok)
  5. Iteratorer og iterables
← Tilbake til Python For Kids