Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Introduktion till generatorfunktioner och yield | Bemästra Python-Iteratorer och Dekoratorer
Funktionella Programmeringskoncept i Python

bookIntroduktion till generatorfunktioner och yield

Svep för att visa menyn

Generatorfunktioner är en speciell typ av funktion i Python som låter dig skapa iteratorer på ett enkelt och läsbart sätt. Till skillnad från vanliga funktioner som returnerar ett enda värde och sedan avslutas, kan generatorfunktioner pausa sin exekvering och återupptas senare, vilket gör att de producerar en serie värden ett i taget.

Note
Definition

yield är ett Python-nyckelord som används i generatorfunktioner för att producera ett värde och pausa funktionens tillstånd. När generatorn återupptas fortsätter den från där den pausades.

Detta gör att du kan iterera över sekvenser ett värde i taget utan att skapa mellanliggande listor, vilket gör din kod mer minnes­effektiv.

Hur fungerar generatorfunktioner?

En generatorfunktion ser ut som en vanlig funktion men använder nyckelordet yield istället för return. När Python når yield-satsen pausar den funktionens exekvering och skickar tillbaka det utmatade värdet till anroparen. Nästa gång du begär ett värde återupptas funktionen precis där den pausades.

Så här fungerar en generatorfunktion

  1. Definiera en funktion med def och inkludera minst en yield-sats;
  2. När du anropar funktionen körs inte koden inuti direkt. Istället returneras ett generatorobjekt;
  3. Varje gång du begär nästa värde (med next() eller en for-loop) körs funktionen tills den når yield;
  4. yield-satsen returnerar ett värde till anroparen och pausar funktionens tillstånd;
  5. När ytterligare ett värde begärs återupptas funktionen efter senaste yield;
  6. Funktionen fortsätter tills den får slut på värden eller når en return eller slutet av sin kod.

Fördelar med att använda generatorfunktioner:

  • Sparar minne genom att producera objekt ett i taget istället för att skapa stora listor;
  • Möjliggör läsbar och underhållbar kod för dataströmmar eller sekvenser;
  • Gör det enkelt att arbeta med oändliga eller mycket stora datamängder utan att ladda allt i minnet.

Generatorfunktioner är ett kraftfullt verktyg för effektiv databehandling och är viktiga för att bemästra Pythons funktionella programmeringsstil. Nästa steg är att se exakt hur du skriver och använder generatorfunktioner med praktiska kodexempel.

question mark

Vad gör nyckelordet yield i en generatorfunktion i Python?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 6

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 4. Kapitel 6
some-alt