Introduktion til generatorfunktioner og yield
Stryg for at vise menuen
Generatorfunktioner 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 generatorfunktioner sætte deres udførelse på pause og genoptage senere, hvorved de producerer en række værdier én ad gangen.
yield er et Python-nøgleord, der bruges inde i generatorfunktioner 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 generatorfunktioner?
En generatorfunktion 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 generatorfunktion
- Definér en funktion med
defog inkluder mindst ényield-sætning; - Når du kalder funktionen, køres koden ikke med det samme. I stedet returneres et generatorobjekt;
- Hver gang du anmoder om den næste værdi (ved at bruge
next()eller enfor-løkke), køres funktionen, indtil den rammeryield; yield-sætningen returnerer en værdi til kaldet og sætter funktionens tilstand på pause;- Når der anmodes om endnu en værdi, genoptages funktionen efter den seneste
yield; - Funktionen fortsætter, indtil der ikke er flere værdier, eller den når en
returneller slutningen af koden.
Fordele ved at bruge generatorfunktioner:
- 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.
Generatorfunktioner er et effektivt værktøj til effektiv databehandling og er essentielle for at mestre Pythons funktionelle programmeringsstil. Næste trin viser præcis, hvordan man skriver og bruger generatorfunktioner med praktiske kodeeksempler.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat