Variabile Python globale, locale și nelocale (cu exemple)

În acest tutorial, veți afla despre variabilele globale Python, variabile locale, variabile nelocale și unde să le utilizați.

Video: Variabile locale și globale Python

Variabile globale

În Python, o variabilă declarată în afara funcției sau în domeniul global este cunoscută sub numele de variabilă globală. Aceasta înseamnă că o variabilă globală poate fi accesată în interiorul sau în afara funcției.

Să vedem un exemplu al modului în care este creată o variabilă globală în Python.

Exemplul 1: creați o variabilă globală

 x = "global" def foo(): print("x inside:", x) foo() print("x outside:", x)

Ieșire

 x în interior: global x în exterior: global

În codul de mai sus, am creat x ca o variabilă globală și am definit o foo()pentru a imprima variabila globală x. În cele din urmă, numim foo()care va imprima valoarea lui x.

Ce se întâmplă dacă doriți să modificați valoarea lui x în interiorul unei funcții?

 x = "global" def foo(): x = x * 2 print(x) foo()

Ieșire

 UnboundLocalError: variabila locală „x” la care se face referire înainte de atribuire

Ieșirea arată o eroare deoarece Python tratează x ca o variabilă locală și x nu este, de asemenea, definit în interior foo().

Pentru ca acest lucru să funcționeze, folosim globalcuvântul cheie. Accesați Cuvântul cheie global Python pentru a afla mai multe.

Variabile locale

O variabilă declarată în corpul funcției sau în domeniul local este cunoscută sub numele de variabilă locală.

Exemplul 2: accesarea variabilei locale în afara domeniului

 def foo(): y = "local" foo() print(y)

Ieșire

 NameError: numele „y” nu este definit

Ieșirea arată o eroare deoarece încercăm să accesăm o variabilă locală y într-un domeniu global, în timp ce variabila locală funcționează numai în interior foo()sau în domeniul local.

Să vedem un exemplu despre cum este creată o variabilă locală în Python.

Exemplul 3: creați o variabilă locală

În mod normal, declarăm o variabilă în interiorul funcției pentru a crea o variabilă locală.

 def foo(): y = "local" print(y) foo()

Ieșire

 local

Să aruncăm o privire la problema anterioară în care x era o variabilă globală și am vrut să modificăm x în interior foo().

Variabile globale și locale

Aici, vom arăta cum să utilizați variabile globale și variabile locale în același cod.

Exemplul 4: Utilizarea variabilelor globale și locale în același cod

 x = "global " def foo(): global x y = "local" x = x * 2 print(x) print(y) foo()

Ieșire

 global global local

În codul de mai sus, declarăm x ca global și y ca variabilă locală în foo(). Apoi, folosim operatorul de multiplicare *pentru a modifica variabila globală x și tipărim atât x, cât și y.

După apelare foo(), valoarea lui x devine global globalpentru că am folosit x * 2pentru a tipări de două ori global. După aceea, imprimăm valoarea variabilei locale y ie local.

Exemplul 5: variabilă globală și variabilă locală cu același nume

 x = 5 def foo(): x = 10 print("local x:", x) foo() print("global x:", x)

Ieșire

 local x: 10 global x: 5

În codul de mai sus, am folosit același nume x atât pentru variabila globală, cât și pentru variabila locală. Obținem un rezultat diferit atunci când imprimăm aceeași variabilă, deoarece variabila este declarată în ambele domenii, adică domeniul local din interior foo()și domeniul global din exterior foo().

Când imprimăm variabila din interiorul foo()acesteia rezultă local x: 10. Aceasta se numește sfera locală a variabilei.

În mod similar, atunci când tipărim variabila în afara lui foo(), rezultă global x: 5. Aceasta se numește sfera globală a variabilei.

Variabile nelocale

Variabilele nelocale sunt utilizate în funcții imbricate al căror scop local nu este definit. Aceasta înseamnă că variabila nu poate fi nici în domeniul local, nici în cel global.

Să vedem un exemplu al modului în care este utilizată o variabilă nelocală în Python.

Folosim nonlocalcuvinte cheie pentru a crea variabile nelocale.

Exemplul 6: creați o variabilă nelocală

 def outer(): x = "local" def inner(): nonlocal x x = "nonlocal" print("inner:", x) inner() print("outer:", x) outer()

Ieșire

 interior: nonlocal exterior: nonlocal

În codul de mai sus, există o inner()funcție imbricată . Folosim nonlocalcuvinte cheie pentru a crea o variabilă nelocală. inner()Funcția este definită în sfera de aplicare a unei alte funcții outer().

Notă : Dacă schimbăm valoarea unei variabile nelocale, modificările apar în variabila locală.

Articole interesante...