Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Generatorfunktioner og Yield | Mastering Python Decorators
Funktionelle Programmeringskoncepter i Python

Generatorfunktioner og Yield

Stryg for at vise menuen

Generator-funktioner er en særlig type funktion i Python, der gør det muligt at oprette iteratorer på en enkel og læsbar måde. I modsætning til almindelige funktioner, som returnerer en enkelt værdi og derefter afsluttes, kan generator-funktioner sætte deres udførelse på pause og genoptage senere, hvilket producerer en række værdier én ad gangen.

Note
Definition

yield er et Python-nøgleord, der bruges inde i generator-funktioner til at producere en værdi og sætte funktionens tilstand på pause. Når generatoren genoptages, fortsætter den fra det sted, hvor den slap.

Dette gør det muligt at iterere over sekvenser én værdi ad gangen uden at opbygge mellemliggende lister, hvilket gør koden mere hukommelseseffektiv.

Hvordan fungerer generator-funktioner?

En generator-funktion ligner en normal funktion, men bruger nøgleordet yield i stedet for return. Når Python møder yield-sætningen, sættes funktionens udførelse på pause, og den afgivne værdi sendes tilbage til kaldet. Næste gang du anmoder om en værdi, genoptages funktionen præcis der, hvor den slap.

Sådan fungerer en generator-funktion

  1. Definér en funktion med def og inkluder mindst én yield-sætning;
  2. Når du kalder funktionen, køres koden ikke med det samme. I stedet returneres et generator-objekt;
  3. Hver gang du anmoder om den næste værdi (ved hjælp af next() eller en for-løkke), køres funktionen, indtil den rammer yield;
  4. yield-sætningen returnerer en værdi til kaldet og sætter funktionens tilstand på pause;
  5. Når der anmodes om endnu en værdi, genoptages funktionen efter den sidste yield;
  6. Funktionen fortsætter, indtil der ikke er flere værdier, eller den når en return eller slutningen af koden.

Fordele ved at bruge generator-funktioner:

  • Spar hukommelse ved at producere elementer ét ad gangen i stedet for at oprette store lister;
  • Skriv læsbar og vedligeholdelsesvenlig kode til datastrømme eller sekvenser;
  • Arbejd nemt med uendelige eller meget store datasæt uden at indlæse alt i hukommelsen.

Generator-funktioner er et effektivt værktøj til databehandling og er essentielle for at mestre Pythons funktionelle programmeringsstil. Næste trin viser præcis, hvordan man skriver og bruger generator-funktioner med praktiske kodeeksempler.

question mark

Hvad gør nøgleordet yield i en Python-generatorfunktion?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 4. Kapitel 6
some-alt