Ik wil een vraag beantwoorden die je misschien wel of niet hebt, maar het is iets
dat me jaren heeft gekost om het te begrijpen, en dat is waarom niet alles gewoon als globale variabelen hebben?
Ik bedoel, al die verwarring over wie toegang heeft tot wie, hoe gemakkelijk zou het zijn als alles
gewoon op de hoofdpagina stond, al onze informatie, alle gegevens over onze wereldwijde reikwijdte, zodat alles toegang heeft
tot alles.
Zou dat niet makkelijker zijn?
En je zou een beetje gelijk hebben.
Ik bedoel, dat zou al deze hoofdpijn doen verdwijnen, toch?
Maar je moet onthouden dat machines geen oneindige kracht hebben, geen oneindige CPU, geen
oneindig geheugen, ze hebben allemaal beperkte middelen.
En als programmeurs moeten we ons bewust zijn van welke bronnen we gebruiken, want soms kan dat ons geld kosten,
soms kan dat onze computers laten crashen.
En reikwijdte is hier een geweldige demonstratie van.
Bijvoorbeeld, deze code hier, wanneer deze functie wordt uitgevoerd, creëren we technisch gezien slechts één
locatie in het geheugen voor de X-variabele.
Dus we hebben die boekenplank in onze computer die X is en die naar lokaal wijst als we deze functie daadwerkelijk
aanroepen.
En als we hier niet-lokaal zeggen, nou, dan bedoelen we gewoon geen nieuwe boekenplank voor ons maken.
Gebruik gewoon degene die we al hebben en wijs deze niet-lokaal toe.
Als we deze regel niet hadden, hebben we tegen de tijd dat we bij regel zeven komen, X in het geheugen geplaatst die gelijk is aan
lokaal en X gelijk is aan niet-lokaal.
We hebben nu dus twee locaties in het geheugen.
Dit is niet erg, want in deze tijd hebben we veel geheugen.
Maar naarmate programma's groter en groter worden, wordt dit een beetje een probleem.
Oké, maar hoe zit het met een functie?
Ik bedoel, we hebben geleerd dat functies ons in staat stellen onszelf niet te herhalen en dat we meerdere keren kunnen
bellen.
Maar een ander goed gebruik van functies is dat zodra we deze functie hebben aangeroepen en dit allemaal is
gedaan, de computer en de Python-interpreter specifiek al dit geheugen vernietigen.
Dat wil zeggen, als we eenmaal klaar zijn met de buitenste functie, kan ik print X hier niet echt aanroepen.
Het gaat me een fout geven.
Het gaat om te zeggen dat ik geen idee heb wat er bestaat.
En waarom is dat?
Het is omdat nadat we deze functie hebben aangeroepen, de python zal heten, de vuilnisman gaat zeggen, hey, het lijkt
erop dat we klaar zijn met deze functie.
En ik zie dat deze X-variabele goed is, en deze X-variabele die we niet gaan gebruiken omdat we klaar zijn met
deze functie.
Dus ik ga dat afval verzamelen en dan gewoon weggooien.
Dus ik ga die geheugenkast leegmaken zodat andere bronnen of andere programma's dat kunnen gebruiken.
En dat is echt een leuke functie waarbij Python deze gewoon automatisch voor je verwijdert, zodat je het geheugen
van de computer niet verstopt.
En daarom is SCOP handig.
We hoeven er niet zo gedetailleerd over na te denken als ik het heb genoemd, maar het is fijn
om te weten dat het er is, zodat je programma's niet veel geheugen in beslag nemen en ze efficiënt kunnen werken.
Dit is een beetje een geavanceerd onderwerp, maar ik wilde het hier wel opnemen, zodat je kunt nadenken
over waarom programma's zijn ontworpen zoals ze zijn.
Oke.
Ik stop nu met praten.
Ik zie je in de volgende video.
Tot ziens.