Python Global-sleutelwoord (met voorbeelden)

In dit artikel leert u over het globale trefwoord, de globale variabele en wanneer u globale trefwoorden moet gebruiken.

Voordat u dit artikel leest, moet u ervoor zorgen dat u de basis van Python Global, Local en Nonlocal Variables hebt.

Wat is het globale trefwoord

In Python globalkunt u met trefwoord de variabele buiten het huidige bereik wijzigen. Het wordt gebruikt om een ​​globale variabele te maken en wijzigingen in de variabele aan te brengen in een lokale context.

Regels van globaal trefwoord

De basisregels voor globaltrefwoord in Python zijn:

  • Wanneer we een variabele binnen een functie maken, is deze standaard lokaal.
  • Als we een variabele buiten een functie definiëren, is deze standaard globaal. U hoeft geen globaltrefwoord te gebruiken .
  • We gebruiken globaltrefwoord om een ​​globale variabele in een functie te lezen en te schrijven.
  • Gebruik van een globaltrefwoord buiten een functie heeft geen effect.

Gebruik van wereldwijd trefwoord

Laten we een voorbeeld nemen.

Voorbeeld 1: toegang tot globale variabele vanuit een functie

 c = 1 # global variable def add(): print(c) add()

Wanneer we het bovenstaande programma uitvoeren, is de uitvoer:

 1

We kunnen echter enkele scenario's hebben waarin we de globale variabele vanuit een functie moeten wijzigen.

Voorbeeld 2: Globale variabele wijzigen vanuit de functie

 c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()

Wanneer we het bovenstaande programma uitvoeren, toont de uitvoer een fout:

 UnboundLocalError: lokale variabele 'c' waarnaar wordt verwezen vóór toewijzing

Dit komt omdat we alleen toegang hebben tot de globale variabele, maar deze niet kunnen wijzigen vanuit de functie.

De oplossing hiervoor is om het globaltrefwoord te gebruiken .

Voorbeeld 3: Globale variabele wijzigen vanuit een functie met behulp van global

 c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)

Wanneer we het bovenstaande programma uitvoeren, is de uitvoer:

 Inside add (): 2 In main: 2

In het bovenstaande programma definiëren we c als een globaal trefwoord binnen de add()functie.

Vervolgens verhogen we de variabele c met 1, dwz c = c + 2. Daarna noemen we de add()functie. Ten slotte printen we de globale variabele c.

Zoals we kunnen zien, vond er ook verandering plaats in de globale variabele buiten de functie c = 2.

Globale variabelen in Python-modules

In Python maken we een enkele module config.pyom globale variabelen vast te houden en informatie te delen tussen Python-modules binnen hetzelfde programma.

Hier is hoe we globale variabelen kunnen delen over de Python-modules.

Voorbeeld 4: deel een globale variabele over Python-modules

Maak een config.pybestand om globale variabelen op te slaan

 a = 0 b = "empty"

Maak een update.pybestand om globale variabelen te wijzigen

 import config config.a = 10 config.b = "alphabet"

Maak een main.pybestand om waardeveranderingen te testen

 import config import update print(config.a) print(config.b)

Wanneer we het main.pybestand uitvoeren, is de uitvoer

 10 alfabet

In het bovenstaande hebben we drie bestanden gemaakt: config.py, update.py, en main.py.

De module config.pyslaat globale variabelen van a en b op. In het update.pybestand importeren we de config.pymodule en wijzigen de waarden van a en b. Evenzo main.pyimporteren we in het bestand zowel config.pyals update.pymodule. Ten slotte printen en testen we de waarden van globale variabelen, ongeacht of ze zijn gewijzigd of niet.

Globaal in geneste functies

Hier is hoe u een globale variabele in geneste functie kunt gebruiken.

Voorbeeld 5: een globale variabele gebruiken in geneste functie

 def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x)

De output is:

 Voor bellen blokkeren: 20 Oproepen nu blokkeren Na bellen blokkeren: 20 x in hoofd: 25

In het bovenstaande programma hebben we een globale variabele binnen de geneste functie gedeclareerd bar(). Binnen foo()functie, x heeft geen effect op het globale trefwoord.

Voor en na het aanroepen bar()neemt de variabele x de waarde van de lokale variabele, dwz x = 20. Buiten de foo()functie zal de variabele x een waarde aannemen die in de bar()functie is gedefinieerd, dwz x = 25. Dit komt omdat we globaltrefwoord in x hebben gebruikt om een ​​globale variabele te maken binnen de bar()functie (lokaal bereik).

Als we wijzigingen aanbrengen binnen de bar()functie, verschijnen de wijzigingen buiten het lokale bereik, dwz foo().

Interessante artikelen...