Oké, laten we een spelletje spelen. Kun jij raden wat de output van dit programma zal zijn?
Ik heb hier gelijk aan één.
Dan creëren we een functie genaamd verwarring waarbij we een gelijk aan vijf hebben en we retourneren een mijn vraag is, wanneer
we A afdrukken en wanneer we verwarring afdrukken, wat verwacht je dan dat hier zal gebeuren?
Neem even de tijd om uit te zoeken of het nodig is, en laten we het uitzoeken.
Een in vijf.
Is dat wat je verwachtte?
Laten we regel voor regel gaan.
Eerst wijzen we de waarde van één toe aan variabele A, we creëren dan een functie genaamd verwarring en Python-interpreter gaat zeggen, oké,
verwarringsfunctie, ik weet wat het is.
Ik ga het in het geheugen zetten.
Laat het me weten als je me nodig hebt.
En dan gaat het naar regel acht en regel acht gaat zeggen, hey, print een wat is een...
Nou, de enige keer dat ik A heb gezien is hier, een is gelijk aan één.
Dus naar het geheugen gaan wat zeggen is gelijk aan één.
Maar als ik dan zo'n verwarring leid.
Ik ga zeggen, hé, A wordt gelijk aan vijf en nu gaan we terug, dat is vijf.
OK, wat als ik de volgorde hiervan verander?
Wat als ik zo ga?
Wat zal er gebeuren?
Als ik klik, ren dan weg.
Is dat wat je verwachtte?
Nogmaals, we hebben een close, dan definiëren we de functie en dan printen we verwarring.
Nu, verwarring hier gaat een gelijk aan vijf toekennen en dan A retourneren, maar waarom is dit niet veranderd?
Waarom is A nog steeds gelijk aan één tegen de tijd dat we hier aankomen?
En dit komt door de reikwijdte, toch?
Wat de Python-interpreter doet, is wanneer hij de verwarringsfunctie uitvoert, hij gaat zeggen, hé, A wordt gelijk aan
vijf, maar ik maak hier een variabele met de naam A in mijn eigen universum.
Ik weet niets over een gelijken hier.
Ik heb mijn eigen universum en nadat we deze functie hebben uitgevoerd, zijn we klaar.
We hebben de functie teruggegeven en hij is helemaal weg.
Maar we verlieten het universum nooit in de mondiale reikwijdte.
Er is dus een reeks regels die de Python-interpreter doorloopt om een variabele te controleren en de regels zijn
deze.
Eerst gaat het navragen bij de lokale bevolking.
Dus begin met lokaal en wat we noemen is een lokale scope.
Een lokaal bereik is een bereik dat deel uitmaakt van deze lokale functie.
Dus A is een lokale scope.
Het gaat daar controleren.
Hé, ken ik de variabele?
A Nou, ja.
Als ik A retourneer, heb ik hier een variabele gedefinieerd, dus het begint daar.
Maar laten we zeggen dat A er niet was.
Laten we zeggen dat ik verwijder en ik klik hier op uitvoeren.
Ik krijg beide één keer, want de tweede regel is dat als er niets in de lokale variabele of het lokale
bereik is, dan nummer twee, is er een lokale ouderschool?
In ons geval, wat is de ouder van disfunctie?
Het is de globale scope, maar we kunnen ook een andere functie vervullen.
Laten we zeggen dat ouder en ouder een ouder is van de verwarringsfunctie.
En hier, laten we zeggen dat een gelijk is aan twee 10.
Nu, hierbinnen, zullen we terugkeren.
Verwarring zodat we het opnieuw kunnen gebruiken en het daadwerkelijk kunnen uitvoeren.
Dus laten we de ouders bellen.
En klik op uitvoeren.
Oké, laten we dit doornemen, zodat het niet te verwarrend is.
We hebben hun bovenliggende functie die wordt aangeroepen.
Dus als we dat aanroepen, kennen we een gelijk aan tien toe en dan creëren we ook een nieuwe functie, verwarring.
En dan geven we eindelijk verwarring terug en voeren we het daadwerkelijk uit.
Dus we gaan A teruggeven en dan hier afdrukken wat de waarde van A ook is, namelijk 10.
En waarom is dat?
Nou, omdat we eerst beginnen met de lokale scope.
Hey, deze verwarring weet wat A is?
Nee, ik heb het niet in mijn lokale bereik, oké, heeft mijn bovenliggende lokale bereik het?
Dus het gaat een niveau omhoog gaan en zeggen, hey, functioneert de ouder tegenwoordig?
Ja, ik heb er bijna 10.
Dus het gaat afdrukken dat de derde regel of de derde orde globaal is.
En globaal is wat we de inspringing van niets noemen, het is dit bestand, goed, wat het bestand ook heeft dat globaal is
in ons geval, als A gelijk aan tien hier niet bestaat, is er geen lokaal, is er geen ouder
lokaal.
En ik klik op uitvoeren.
Het controleert het globale bereik.
En tot slot is er nog een andere regel, en dit is nummer vier, en het is
een lastige, en dit noemen we gebouwd in Python.
Of ingebouwde python-functies.
Dus Python wordt geleverd met voorgedefinieerde functies, zoals de functies waar we het eerder over hadden.
Dit wat, laten we zeggen, geef het er vijf.
Gaat het controleren of laten we het eigenlijk niets geven, laten we het hier maar eens doen.
Wanneer ik dit uitvoer.
Ik krijg een aantal ingebouwde functies.
Hoe wist hij wat dit was, wat deze variabele aan het eind van de dag was?
Nou, omdat er stond, hey, heb ik wat in dit universum?
Nee, ik niet.
OK, heb ik wat in mijn ouderbereik?
Nee, ik niet.
OK, heb ik een globaal bedrag?
Nee, er is hier niets.
En dan is het laatste wat het gaat controleren, hé, een soort ingebouwde python-functie.
Ja.
Python geeft ons eigenlijk wat, zodat je het kunt gebruiken, zodat het niet wordt uitgezonden.
En dit zijn de reikwijdteregels die de Python-interpreter heel, heel cool maakt.
Er zijn nog een paar dingen die we moeten leren.
Dus ik zie je in de volgende video.