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 su 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.
Tutto bene.
Adesso smetto di parlare.
Ci vediamo nel prossimo video.
Ciao ciao.