Algemeen Python-sleutelwoord
Globaal Python-zoekwoord
In dit artikel leert u over het algemene zoekwoord, de algemene variabele en wanneer u algemene zoekwoorden moet gebruiken.
Voordat je dit artikel leest, moet je ervoor zorgen dat je de basis hebt van de algemene, lokale en niet-lokale variabelen van Python.
Wat is het algemene zoekwoord
In Python, global
trefwoord kunt u de variabele buiten het huidige bereik wijzigen. Het wordt gebruikt om een globale variabele te maken en wijzigingen aan te brengen in de variabele in een lokale context.
Regels voor algemeen zoekwoord
De basisregels voor global
trefwoord in Python zijn:
- Als 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
global
niet te gebruiken zoekwoord. - We gebruiken
global
trefwoord om een globale variabele in een functie te lezen en te schrijven. - Gebruik van
global
zoekwoord buiten een functie heeft geen effect.
Gebruik van algemeen zoekwoord
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: local variable 'c' referenced before assignment
Dit komt omdat we alleen toegang hebben tot de globale variabele, maar deze niet kunnen wijzigen vanuit de functie.
De oplossing hiervoor is om de global
. te gebruiken zoekwoord.
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 algemeen zoekwoord binnen de add()
functie.
Vervolgens verhogen we de variabele c door 2 , d.w.z. 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 op de globale variabele buiten de functie, c = 2
.
Globale variabelen in Python-modules
In Python maken we een enkele module config.py
om globale variabelen te bewaren 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.py
bestand, om globale variabelen op te slaan
a = 0
b = "empty"
Maak een update.py
bestand, om globale variabelen te wijzigen
import config
config.a = 10
config.b = "alphabet"
Maak een main.py
bestand, om veranderingen in waarde te testen
import config
import update
print(config.a)
print(config.b)
Wanneer we de main.py
. uitvoeren bestand, is de uitvoer
10 alphabet
In het bovenstaande hebben we drie bestanden gemaakt:config.py
, update.py
, en main.py
.
De module config.py
slaat globale variabelen op van a en b . In de update.py
bestand, importeren we de config.py
module en wijzig de waarden van a en b . Evenzo, in de main.py
bestand importeren we beide config.py
en update.py
module. Ten slotte printen en testen we de waarden van globale variabelen, of ze nu gewijzigd zijn of niet.
Globaal in geneste functies
Hier ziet u hoe u een globale variabele in een 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 uitvoer is:
Before calling bar: 20 Calling bar now After calling bar: 20 x in main: 25
In het bovenstaande programma hebben we een globale variabele gedeclareerd in de geneste functie bar()
. Binnen foo()
functie, x heeft geen effect op het algemene zoekwoord.
Voor en na het bellen met bar()
, de variabele x neemt de waarde van de lokale variabele, d.w.z. x = 20
. Buiten de foo()
functie, de variabele x zal de waarde aannemen die is gedefinieerd in de bar()
functie d.w.z. x = 25
. Dit komt omdat we global
. hebben gebruikt zoekwoord in x om een globale variabele te creëren binnen de bar()
functie (lokale scope).
Als we wijzigingen aanbrengen in de bar()
functie, verschijnen de wijzigingen buiten het lokale bereik, d.w.z. foo()
.
Python