‫Oh, jongen, er staat een code op het scherm en het ziet er erg verwarrend uit.
‫Dit is een voorbeeld van een echt ingewikkelde, gecompliceerde functie die je nooit zou schrijven, maar die
‫goed is voor trainingsdoeleinden.
‫En we hebben het hier specifiek over, hier niet-lokaal genoemd.
‫Het is eigenlijk een nieuw sleutelwoord in Python drie.
‫En zoals je kunt zien, merkt mijn Reppel het niet eens op.
‫Het wordt dus niet eens blauw gemarkeerd omdat het een nieuwe functie is.
‫Maar ik wil er wel met je over praten en je laten weten wat het doet.
‫Het niet-lokale sleutelsleutelwoord wordt gebruikt om naar dit deel te verwijzen, dit bovenliggende lokale.
‫Het is een manier voor ons om te zeggen, hey, ik wil een variabele gebruiken die geen globale variabele is, maar buiten
‫het bereik van mijn functie valt.
‫Dus op basis van die definitie, probeer de video te pauzeren en kijk wat deze functie zou kunnen doen, ik zal
‫het nu meteen uitvoeren en dan de code doornemen als ik op uitvoeren klik.
‫Dit is wat we krijgen.
‫Laten we het hier dus over hebben.
‫We hebben een uiterlijke functie en dan noemen we de uiterlijke functie.
‫Dus de Python-interpreter gaat zeggen, oké, we hebben een X-variabele die lokaal is voor
‫de buitenste functie.
‫En dan hierbinnen, gaan we een innerlijke functie definiëren, een andere functie.
‫En hierbinnen, voordat we dat zelfs maar noemen, sprongen we in regel negen en zeiden, oké, bel innerlijke functie.
‫We komen terug en we zeggen, hey, regel vijf, ik wil non-local X gebruiken.
‫Hm.
‫Wat betekent dat?
‫Nou, ik wil deze X-variabele gebruiken omdat het niet-lokaal is.
‫Dat wil zeggen, ik wil geen nieuwe X-variabele maken.
‫Ik wil naar mijn ouders springen, mijn ouders lokaal bekijken en pakken wat je daar vindt.
‫Zolang het geen globale variabele is, zal elke ouder het doen.
‫Ik wil dat non-lokale grijpen.
‫Dus nu verwijst deze X naar de buitenste functie hier.
‫Dus als we zeggen dat X gelijk is aan niet-lokaal, wijzen we deze nieuwe string toe.
‫En door deze local te vervangen, zodat wanneer we interacties printen, we non-local krijgen, maar ook wanneer we
‫de buitenste X printen, hebben we deze outer scope aangepast met het non-local sleutelwoord.
‫Dus dat wordt ook niet-lokaal.
‫Als ik deze regel verwijder en laten we er commentaar op geven en ik klik op uitvoeren.
‫Je ziet het verschil nu we de inner nonlocal hebben, maar de outer local is niet gewijzigd omdat
‫dit een nieuwe variabele is.
‫Nogmaals, ik beweer dat dit uw code eigenlijk ingewikkelder maakt dan nodig is.
‫Er zijn dus speciale gevallen waarin u dit misschien wilt gebruiken, maar als u kunt proberen uw code voorspelbaar
‫te maken, waar u kunt voorkomen dat u dingen als niet-lokaal en globaal gebruikt, let wel, ze zijn er met een reden omdat
‫ze in sommige gevallen nuttig zijn situaties.
‫Dat gezegd hebbende, onthoud, maak je code voorspelbaar, maak je code schoon, en ik zie je in de
‫volgende video.