[Python] Chiarimento sugli iteratori
Riccardo Magliocchetti
riccardo.magliocchetti a gmail.com
Ven 17 Set 2021 17:17:29 CEST
On 17/09/21 17:06, Valerio Pachera wrote:
> Il caso simil reale è questo
>
> ho una funzione che legge un file, e potrei ritornare una grande lista.
> Al posto di ritornare la lista, faccio lo yield del dato estratto, al
> fine di risparmiare RAM.
>
> def parsefile(path):
> # tante belle cose
> yield x
>
> Ho poi altre due funzioni che generano delle stringhe.
> Come argomento potrei passare il listone, ma passo l'iteratore
>
>
> data = parsefile(path):
>
> def tampastinga1(data):
> # prendi il necessario da data
> return stinga
>
> def stampastringa2(data):
> # prendi il necessario da data
> return stringa
>
> Ebbene, la seconda funzione non ritorna nulla.
"al fine di risparmiare RAM" è proprio il motivo per cui quei dati una volta
consumati non sono più disponibili. Se devi ripassarci ti tocca metterli da
qualche parte :)
--
Riccardo Magliocchetti
@rmistaken
http://menodizero.it
Maggiori informazioni sulla lista
Python