‫Voglio rispondere a una domanda che potresti avere o meno, ma è qualcosa che
‫mi ci sono voluti anni per capire, ed è per questo che non hai semplicemente tutto come variabili globali?
‫Voglio dire, tutta questa confusione di chi ha accesso a chi, quanto sarebbe facile se tutto fosse solo nella
‫pagina principale, tutte le nostre informazioni, tutti i dati sul nostro ambito globale in modo che tutto abbia accesso
‫a tutto.
‫Non sarebbe più facile?
‫E avresti ragione.
‫Voglio dire, questo farebbe sparire tutto questo mal di testa, giusto?
‫Ma devi ricordare che le macchine non hanno potenza infinita, non hanno CPU infinita, non
‫hanno memoria infinita, hanno tutte risorse limitate.
‫E come programmatori, dobbiamo essere consapevoli di quali risorse utilizziamo perché a volte ciò può costarci denaro, a volte
‫può mandare in crash i nostri computer.
‫E lo scope ne è una grande dimostrazione.
‫Ad esempio, questo codice proprio qui, quando viene eseguita questa funzione, stiamo creando tecnicamente solo
‫una posizione in memoria per la variabile X.
‫Quindi abbiamo quella libreria nel nostro computer che è X che punta a local quando in realtà chiamiamo questa
‫funzione.
‫E poi quando diciamo non locale qui, beh, stiamo dicendo semplicemente di non creare un'altra libreria per noi.
‫Basta usare quello che abbiamo già e assegnarlo come non locale.
‫Se non abbiamo questa riga, quando arriviamo alla riga sette, abbiamo inserito in memoria X uguale a locale e
‫X uguale a non locale.
‫Quindi ora abbiamo due posizioni in memoria.
‫Ora, questo non è un grosso problema perché, beh, al giorno d'oggi, abbiamo molta memoria.
‫Ma man mano che i programmi diventano sempre più grandi, questo diventa un po' un problema.
‫OK, ma che dire di una funzione?
‫Insomma, abbiamo imparato che le funzioni ci permettono di non ripeterci ed essere in grado di chiamare sono più
‫volte.
‫Ma un altro buon uso delle funzioni è che una volta che abbiamo chiamato questa funzione e tutto questo
‫è fatto, il computer e l'interprete Python distruggono specificamente tutta questa memoria.
‫Cioè, una volta terminata la funzione esterna, non posso davvero chiamare print X qui.
‫Mi darà un errore.
‫Dirà che non ho idea di cosa esista.
‫E perché?
‫È perché dopo aver chiamato questa funzione, il Python verrà chiamato il garbage collector che dirà, ehi,
‫sembra che abbiamo finito con questa funzione.
‫E vedo che questa variabile X va bene, e questa variabile X non la useremo perché abbiamo finito con questa
‫funzione.
‫Quindi raccoglierò quella spazzatura e poi la butterò via.
‫Quindi svuoterò quell'armadio della memoria in modo che altre risorse o altri programmi possano usarlo.
‫E questa è una caratteristica davvero interessante in cui Python li rimuove automaticamente per te in modo da non
‫intasare la memoria del computer.
‫Ed è per questo che SCOP è utile.
‫Non dobbiamo pensarci in modo così dettagliato come l'ho menzionato, ma è bello sapere che è
‫lì in modo che i tuoi programmi non occupino molta memoria e possano funzionare in modo efficiente.
‫Questo è un argomento un po' avanzato, ma volevo includerlo qui in modo che tu possa pensare al motivo per cui
‫i programmi sono progettati nel modo in cui sono.
‫Va bene.
‫Adesso smetto di parlare.
‫Ci vediamo nel prossimo video.
‫Ciao ciao.