Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Introduzione alle Funzioni Generatrici e Yield | Python Iterators
Concetti di Programmazione Funzionale in Python

bookIntroduzione alle Funzioni Generatrici e Yield

Scorri per mostrare il menu

Le funzioni generatrici sono un tipo speciale di funzione in Python che permette di creare iteratori in modo semplice e leggibile. A differenza delle funzioni normali che restituiscono un singolo valore e poi terminano, le funzioni generatrici possono sospendere la loro esecuzione e riprenderla successivamente, producendo una serie di valori uno alla volta.

Note
Definizione

yield è una parola chiave di Python utilizzata all'interno delle funzioni generatrici per produrre un valore e sospendere lo stato della funzione. Quando il generatore riprende, continua dal punto in cui era stato interrotto.

Questo consente di iterare su sequenze un valore alla volta senza creare liste intermedie, rendendo il codice più efficiente in termini di memoria.

Come funzionano le funzioni generatrici?

Una funzione generatrice appare come una funzione normale ma utilizza la parola chiave yield invece di return. Quando Python incontra l'istruzione yield, sospende l'esecuzione della funzione e restituisce il valore generato al chiamante. La volta successiva che si richiede un valore, la funzione riprende esattamente da dove era stata sospesa.

Come opera una funzione generatrice

  1. Definire una funzione usando def e includere almeno un'istruzione yield;
  2. Quando si chiama la funzione, il codice interno non viene eseguito immediatamente. Invece, viene restituito un oggetto generatore;
  3. Ogni volta che si richiede il valore successivo (utilizzando next() o un ciclo for), la funzione viene eseguita fino a incontrare yield;
  4. L'istruzione yield restituisce un valore al chiamante e sospende lo stato della funzione;
  5. Quando viene richiesto un altro valore, la funzione riprende dopo l'ultimo yield;
  6. La funzione continua fino a quando non esaurisce i valori o raggiunge un'istruzione return o la fine del codice.

Vantaggi dell'utilizzo delle funzioni generatrici:

  • Risparmio di memoria producendo gli elementi uno alla volta invece di creare grandi liste;
  • Codice leggibile e manutenibile per flussi di dati o sequenze;
  • Gestione semplice di insiemi di dati infiniti o molto grandi senza caricare tutto in memoria.

Le funzioni generatrici sono uno strumento potente per l'elaborazione efficiente dei dati e sono fondamentali per padroneggiare lo stile di programmazione funzionale in Python. Successivamente, verrà mostrato come scrivere e utilizzare funzioni generatrici con esempi pratici di codice.

question mark

Cosa fa la parola chiave yield in una funzione generatore Python?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 5. Capitolo 4
some-alt