Giorno.

Cerco di spiegarmi nella maniera più semplice e completa.

Io ho un main che chiama una funzione, mettiamo... un milione di volte.

Questa funzione ha il compito di contare, con un ciclo for, da ...mettiamo 1 a 1000, non è importante. Durante questo ciclo di 1000 ripetizioni, potrebbe verificarsi un evento che fa ritornare la funzione al main.
Tipo, if blablabla: return
L'evento potrebbe esserci oppure no.

Bene, dopo il milione di chiamate, avrò che una percentuale di cicli si è conclusa arrivando a 1000, altri invece sono stati interrotti.

A livello di occupazione della memoria, quelli interrotti da return, hanno lasciato traccia? Stanno occupando memoria? Sono messi in una specie di stack di trace perchè Python si aspetta di poterli riprendere, oppure il return fa immediatamente annullare (dimenticare) il ciclo in corso?

A livello di ottimizzazione, se allo scatenarsi dell'evento dentro al ciclo for avessi usato un break e poi una istruzione condizionale fuori dal ciclo: se evento, allora return, sarebbe stato meglio oppure la stessa cosa?

Spero di essere riuscito a spiegarmi.

Gabriele.
--
Gabriele Battaglia, IZ4APU (Libero)
Sent from TB on Windows 10, Genus Bononiae's computer.
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a