Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Generointifunktioiden ja Yield-avainsanan Esittely | Python Iterators
Funktionaalisen Ohjelmoinnin Käsitteet Pythonissa

bookGenerointifunktioiden ja Yield-avainsanan Esittely

Pyyhkäise näyttääksesi valikon

Generaattorifunktiot ovat erityinen funktiotyyppi Pythonissa, jonka avulla voidaan luoda iteraattoreita yksinkertaisella ja selkeällä tavalla. Toisin kuin tavalliset funktiot, jotka palauttavat yhden arvon ja päättyvät, generaattorifunktiot voivat keskeyttää suorituksensa ja jatkaa myöhemmin, tuottaen arvoja yksi kerrallaan.

Note
Määritelmä

yield on Python-avainsana, jota käytetään generaattorifunktioissa arvon tuottamiseen ja funktion tilan keskeyttämiseen. Kun generaattori jatkaa, se jatkuu siitä kohdasta, mihin se jäi.

Tämän ansiosta voit iteroida jonoja arvo kerrallaan ilman välilistan rakentamista, mikä tekee koodistasi muistitehokkaampaa.

Kuinka generaattorifunktiot toimivat?

Generaattorifunktio muistuttaa tavallista funktiota, mutta käyttää yield-avainsanaa return-avainsanan sijaan. Kun Python kohtaa yield-lauseen, se keskeyttää funktion suorituksen ja palauttaa tuotetun arvon kutsujalle. Seuraavan arvon pyynnön yhteydessä funktio jatkuu siitä, mihin se jäi.

Generaattorifunktion toiminta

  1. Määrittele funktio käyttäen def ja lisää vähintään yksi yield-lause;
  2. Kun kutsut funktiota, sen sisällä olevaa koodia ei suoriteta heti. Sen sijaan palautetaan generaattori-olio;
  3. Jokaisella arvonpyynnöllä (next() tai for-silmukka) funktio suoritetaan kunnes saavutetaan yield;
  4. yield-lause palauttaa arvon kutsujalle ja keskeyttää funktion tilan;
  5. Kun pyydetään seuraavaa arvoa, funktio jatkuu viimeisimmän yield-kohdan jälkeen;
  6. Funktio jatkuu, kunnes arvot loppuvat tai saavutetaan return tai koodin loppu.

Generaattorifunktioiden hyödyt:

  • Säästää muistia tuottamalla arvoja yksi kerrallaan suurten listojen sijaan;
  • Selkeän ja ylläpidettävän koodin kirjoittaminen tietovirtoihin ja jonoihin;
  • Helppo käsitellä äärettömiä tai erittäin suuria tietomääriä ilman, että kaikkea tarvitsee ladata muistiin.

Generaattorifunktiot ovat tehokas työkalu tehokkaaseen tietojenkäsittelyyn ja olennaisia Pythonin funktionaalisen ohjelmoinnin hallitsemisessa. Seuraavaksi näet, miten generaattorifunktioita kirjoitetaan ja käytetään käytännön koodiesimerkkien avulla.

question mark

Mitä yield-avainsana tekee Pythonin generaattorifunktiossa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 5. Luku 4
some-alt