În acest articol, veți afla despre cuvântul cheie global, variabila globală și când să utilizați cuvintele cheie globale.
Înainte de a citi acest articol, asigurați-vă că ați obținut câteva elemente de bază pentru Python Global, Local și Nonlocal Variables.
Care este cuvântul cheie global
În Python, global
cuvântul cheie vă permite să modificați variabila în afara domeniului curent. Este folosit pentru a crea o variabilă globală și pentru a face modificări variabilei într-un context local.
Regulile cuvântului cheie global
Regulile de bază pentru global
cuvântul cheie în Python sunt:
- Când creăm o variabilă în interiorul unei funcții, aceasta este locală în mod implicit.
- Când definim o variabilă în afara unei funcții, aceasta este globală în mod implicit. Nu trebuie să utilizați
global
cuvinte cheie. - Folosim
global
cuvinte cheie pentru a citi și scrie o variabilă globală în interiorul unei funcții. - Utilizarea
global
cuvântului cheie în afara unei funcții nu are niciun efect.
Utilizarea cuvântului cheie global
Să luăm un exemplu.
Exemplul 1: accesarea variabilei globale din interiorul unei funcții
c = 1 # global variable def add(): print(c) add()
Când rulăm programul de mai sus, ieșirea va fi:
1
Cu toate acestea, este posibil să avem câteva scenarii în care trebuie să modificăm variabila globală din interiorul unei funcții.
Exemplul 2: Modificarea variabilei globale din interiorul funcției
c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()
Când rulăm programul de mai sus, ieșirea arată o eroare:
UnboundLocalError: variabila locală „c” la care se face referire înainte de atribuire
Acest lucru se datorează faptului că putem accesa doar variabila globală, dar nu o putem modifica din interiorul funcției.
Soluția pentru aceasta este utilizarea global
cuvântului cheie.
Exemplul 3: Schimbarea variabilei globale din interiorul unei funcții folosind global
c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)
Când rulăm programul de mai sus, ieșirea va fi:
În interior add (): 2 În principal: 2
În programul de mai sus, definim c ca un cuvânt cheie global în interiorul add()
funcției.
Apoi, incrementăm variabila c cu 1
, adică c = c + 2
. După aceea, numim add()
funcția. În cele din urmă, imprimăm variabila globală c.
După cum putem vedea, schimbarea a avut loc și la variabila globală din afara funcției c = 2
,.
Variabile globale la modulele Python
În Python, creăm un singur modul config.py
pentru a păstra variabile globale și pentru a partaja informații între modulele Python din cadrul aceluiași program.
Iată cum putem partaja variabile globale între modulele Python.
Exemplul 4: Partajați o variabilă globală în modulele Python
Creați un config.py
fișier, pentru a stoca variabile globale
a = 0 b = "empty"
Creați un update.py
fișier, pentru a modifica variabilele globale
import config config.a = 10 config.b = "alphabet"
Creați un main.py
fișier, pentru a testa modificările de valoare
import config import update print(config.a) print(config.b)
Când rulăm main.py
fișierul, ieșirea va fi
10 alfabet
În cele de mai sus, am creat trei fișiere: config.py
, update.py
și main.py
.
Modulul config.py
stochează variabilele globale ale lui a și b. În update.py
fișier, importăm config.py
modulul și modificăm valorile lui a și b. În mod similar, în main.py
fișier, importăm ambele config.py
și update.py
modulul. În cele din urmă, imprimăm și testăm valorile variabilelor globale, indiferent dacă acestea sunt modificate sau nu.
Global în funcții imbricate
Iată cum puteți utiliza o variabilă globală în funcția imbricată.
Exemplul 5: Utilizarea unei variabile globale în funcție imbricată
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)
Ieșirea este:
Înainte de a apela bara: 20 Apelați bara acum După apelați bara: 20 x în principal: 25
În programul de mai sus, am declarat o variabilă globală în interiorul funcției imbricate bar()
. În interiorul foo()
funcției, x nu are efect asupra cuvântului cheie global.
Înainte și după apelare bar()
, variabila x ia valoarea variabilei locale, adică x = 20
. În afara foo()
funcției, variabila x va lua valoarea definită în bar()
funcția adică x = 25
. Acest lucru se datorează faptului că am folosit global
cuvântul cheie în x pentru a crea o variabilă globală în interiorul bar()
funcției (scop local).
Dacă facem modificări în interiorul bar()
funcției, modificările apar în afara domeniului local, adică foo()
.