Cuvânt cheie global Python (cu exemple)

Î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, globalcuvâ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 globalcuvâ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 globalcuvinte cheie.
  • Folosim globalcuvinte cheie pentru a citi și scrie o variabilă globală în interiorul unei funcții.
  • Utilizarea globalcuvâ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 globalcuvâ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.pypentru 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.pyfișier, pentru a stoca variabile globale

 a = 0 b = "empty"

Creați un update.pyfișier, pentru a modifica variabilele globale

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

Creați un main.pyfișier, pentru a testa modificările de valoare

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

Când rulăm main.pyfiș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.pystochează variabilele globale ale lui a și b. În update.pyfișier, importăm config.pymodulul și modificăm valorile lui a și b. În mod similar, în main.pyfișier, importăm ambele config.pyși update.pymodulul. Î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 globalcuvâ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().

Articole interesante...