Welkom terug.
Laten we proberen een aantal vragen te beantwoorden die u mogelijk heeft, bijvoorbeeld hoe zit het met parameters?
Als ik parameter doe, laten we zeggen hier zijn, wat is deze parameter als ik B op deze manier gebruik?
Dus laten we zeggen afdrukken.
B en hier zal ik verwarring zaaien met, laten we zeggen, het getal driehonderd als ik dit doe.
Dit werkt.
En dat komt omdat be the parameter deel uitmaakt van het lokale bereik, dat wil zeggen dat het hier deel van uitmaakt.
Parameters worden dus als lokale variabelen beschouwd.
We kunnen het binnen de functie gebruiken, maar we kunnen het buiten die functies gebruiken.
Technisch gezien, wanneer we de functie definiëren, laten we de interpreter weten, hey, B wordt een lokale
variabele.
Oké, hoe zit het hiermee?
Wat als we dit hebben, hè?
Maar ik wil er zeker van zijn dat ik binnen mijn functie verwijs naar de globale A. Is
er een manier waarop we deze waarde kunnen gebruiken zonder een nieuwe variabele te maken?
Laten we hiervoor een beter voorbeeld gebruiken.
Laten we zeggen dat ik een teller wilde maken.
Dus we hebben totaal gelijk aan nul.
En dan hier naar binnen.
Ik ga zeggen definieer het aantal.
En deze functie gaat totaal zeggen.
Plus is gelijk aan één.
Dus we gaan elke keer optellen als we het aantal optellen, het gaat nul met één verhogen en
dan één voor één, enzovoort, enzovoort.
Dus we gaan het totaal aan het einde hiervan teruggeven.
Oké, dus als ik hierheen ren, print dan.
Graaf.
Laten we afwachten wat er gebeurt.
Ik ga rennen.
En ik krijg een andere lokale variabele totaal waarnaar wordt verwezen vóór de toewijzing, en dat is omdat, nou ja, Count weet
het totaal niet.
Je probeert totaal te gebruiken, maar we hebben nog niets toegewezen.
Maar we willen dat het totaal van de buitenwereld loopt, want als ik het gewoon doe, is het totaal hier gelijk aan nul
en loop ik tel.
Dat is geweldig, ik krijg er een, maar wat als ik meerdere keren zou willen tellen?
Wat als ik wilde gaan tellen?
Laten we zeggen drie keer, zodat het totaal drie wordt.
Dus laten we de laatste hier afdrukken.
En ik klik op uitvoeren.
Ik krijg er nog steeds een omdat elke keer dat we de functie uitvoeren, we het totaal op nul zetten.
Dat is niet erg handig, toch?
Dus een manier om dit op te lossen, is door gebruik te maken van wat we het globale sleutelwoord noemen in Python en global zegt:
gebruik het globale totaal als het hier bestaat, zodat ik in plaats van een nieuwe variabele te maken, het
globale variabele totaal kan gebruiken.
Bekijk dit eens.
Nou, ik krijg een ongeldige syntaxis, en dat is omdat we eerst moeten zeggen dat het globale totaal hier zal
worden gebruikt en dan kunnen we zeggen dat totaal plus gelijk is aan één als ik dit uitvoer.
Kijk daar eens naar, we hebben een goede teller, dus globaal is een manier voor ons om toegang te krijgen tot deze globale variabele.
Ik beargumenteer echter dat dit eigenlijk geen goede manier is om dingen te doen, omdat het erg verwarrend kan worden
als je Global's begint toe te voegen en al deze verschillende universums toegang hebben tot elkaars variabelen. Een betere
manier om dit te doen is iets dat afhankelijkheidsinjectie wordt genoemd, en dit is een vereenvoudigde versie ervan.
Maar het idee is dat in plaats van toegang te krijgen tot variabelen buiten de functie op deze manier, wat heel, heel
ingewikkeld kan worden naarmate bestanden groter en groter worden, het te doen is.
In plaats daarvan dit.
Totaal.
Op deze manier maken we een parameter en geven we die parameter door.
Of ruzie hier.
Maar zoals je kunt zien, is het nog steeds één, want tegen de tijd dat we het derde totaal afdrukken, verandert dit
nooit.
Dit is een globale nul.
Dus in plaats daarvan kunnen we zoiets als dit doen, we kunnen zeggen tel totaal, waarvan we opnieuw gaan
tellen.
En dan nog eens tellen.
Als ik dit uitvoer.
Ik krijg er drie en ik weet wat je denkt, dit is compleet krankzinnig, het ziet er verwarrend uit.
Kijk naar al deze haakjes.
Maar laat me je laten zien wat we echt hebben gedaan.
We zijn in staat om de afhankelijkheid of het effect dat dit niet kan functioneren op de buitenwereld los te laten en ons in plaats
daarvan te concentreren op de gezondheid ervan.
Het enige wat we hoefden te doen was zeggen, hé, ik wil dat je een telling geeft met een totaal van nul.
En daarna, dit gaat twee één evalueren.
En dan tellen we in totaal één plus één wordt gelijk aan twee en dan wordt tellen twee plus
één gelijk aan drie.
Op deze manier kunnen we nog steeds onze telling doen zonder dat algemene trefwoord te hoeven gebruiken, wat volgens mij
leuker is.
Let op, als dit de eerste keer is dat je dit ziet, kan het een beetje lastig worden.
Maar op deze manier weet je tenminste dat er verschillende manieren zijn om dingen te doen.
Een ander woord dat ik je wil laten zien, is iets dat niet-lokaal wordt genoemd.
Maar laten we voor die ene een pauze nemen en ik zie je in de volgende video.