Variabile globale Python sunt cele care nu sunt definite în nicio funcție și au un domeniu de aplicare global, în timp ce Python variabile locale sunt cele care sunt definite în interiorul unei funcții și sfera lor este limitată numai la acea funcție. Cu alte cuvinte, putem spune că variabilele locale sunt accesibile numai în interiorul funcției în care a fost inițializată, în timp ce variabilele globale sunt accesibile în întreg programul și în interiorul fiecărei funcții.
Variabile locale Python
Variabilele locale din Python sunt cele care sunt inițializate în interiorul unei funcții și aparțin numai acelei funcții particulare. Nu poate fi accesat oriunde în afara funcției. Să vedem cum să creăm o variabilă locală.
Crearea variabilelor locale în Python
Definirea și accesarea variabilelor locale
Python3
def> f():> ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(s)> # Driver code> f()> |
>
>Ieșire
I love Geeksforgeeks>
Poate fi folosită o variabilă locală în afara unei funcții?
Dacă vom încerca să folosim această variabilă locală în afara funcției, atunci să vedem ce se va întâmpla.
Python3
metoda string în java
10 ml în oz
def> f():> > ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(>'Inside Function:'>, s)> # Driver code> f()> print>(s)> |
>
>
Ieșire:
NameError : name 's' is not defined>
Variabile globale Python
Acestea sunt cele care sunt definite în afara oricărei funcții și care sunt accesibile pe tot parcursul programului, adică în interiorul și în afara fiecărei funcții. Să vedem cum să creăm o variabilă globală Python.
Creați o variabilă globală în Python
Definirea și accesarea variabilelor globale Python.
Python3
# This function uses global variable s> def> f():> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(>'Outside Function'>, s)> |
>
>Ieșire
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>
Variabila s este definită ca variabilă globală și este utilizată atât în interiorul funcției, cât și în afara acesteia.
Notă: Deoarece nu există valori locale, se va folosi valoarea din global, dar asigurați-vă că atât variabilele locale, cât și variabilele globale ar trebui să aibă același nume.
De ce folosim variabilele locale și globale în Python?
Acum, ce se întâmplă dacă există o variabilă Python cu același nume inițializată în interiorul unei funcții, precum și la nivel global? Acum se pune întrebarea, variabila locală va avea un anumit efect asupra variabilei globale sau invers și ce se va întâmpla dacă schimbăm valoarea unei variabile în interiorul funcției f()? Va afecta și globalitatea? Îl testăm în următoarea bucată de cod:
Exemplu
Dacă o variabilă cu același nume este definită și în domeniul de aplicare al funcției, atunci va imprima doar valoarea dată în interiorul funcției și nu valoarea globală.
Python3
spring initializr
# This function has a variable with> # name same as s.> def> f():> >s>=> 'Me too.'> >print>(s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(s)> |
>
>Ieșire
Me too. I love Geeksforgeeks>
Acum, ce se întâmplă dacă încercăm să schimbăm valoarea unei variabile globale în interiorul funcției? Să vedem asta folosind exemplul de mai jos.
Python3
# This function uses global variable s> def> f():> >s>+>=> 'GFG'> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> |
spring initializr
>
>
Ieșire:
UnboundLocalError : local variable 's' referenced before assignment>
Pentru ca programul de mai sus să funcționeze, trebuie să folosim cuvântul cheie global în Python. Să vedem care este acest cuvânt cheie global.
Cuvântul cheie global
Trebuie doar să folosim cuvânt cheie global într-o funcție dacă vrem să facem atribuții sau să schimbăm variabila globală. global nu este necesar pentru imprimare și accesare. Python presupune că vrem o variabilă locală datorită atribuirii lui s în interiorul f(), astfel încât prima instrucțiune aruncă mesajul de eroare. Orice variabilă care este modificată sau creată în interiorul unei funcții este locală dacă nu a fost declarată ca variabilă globală. Pentru a spune lui Python că vrem să folosim variabila globală, trebuie să folosim cuvântul cheie global , după cum se poate observa în exemplul următor:
Exemplul 1: Folosind cuvântul cheie global Python
Python3
# This function modifies the global variable 's'> def> f():> >global> s> >s>+>=> ' GFG'> >print>(s)> >s>=> 'Look for Geeksforgeeks Python Section'> >print>(s)> # Global Scope> s>=> 'Python is great!'> f()> print>(s)> |
>
>Ieșire
Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section>
Acum nu există nicio ambiguitate.
Exemplul 2: Utilizarea variabilelor globale și locale Python
Python3
btree și b tree
a>=> 1> # Uses global because there is no local 'a'> def> f():> >print>(>'Inside f() : '>, a)> # Variable 'a' is redefined as a local> def> g():> >a>=> 2> >print>(>'Inside g() : '>, a)> # Uses global keyword to modify global 'a'> def> h():> >global> a> >a>=> 3> >print>(>'Inside h() : '>, a)> # Global scope> print>(>'global : '>, a)> f()> print>(>'global : '>, a)> g()> print>(>'global : '>, a)> h()> print>(>'global : '>, a)> |
>
>Ieșire
global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3>
Diferența b/w variabila locală vs. Variabile globale
| Baza de comparație | Variabilă globală | Variabila locala |
| Definiție | declarat in afara functiilor | declarate în cadrul funcţiilor |
| Durata de viață | Sunt create când începe execuția programului și se pierd când programul este încheiat | Ele sunt create când funcția începe execuția și se pierd când funcția se termină |
| Partajarea datelor | Oferă partajarea datelor | Nu oferă Partajarea datelor |
| Domeniul de aplicare | Poate fi accesat în întregul cod | Se poate accesa numai în interiorul funcției |
| Parametrii necesari | trecerea parametrilor nu este necesară | este necesară trecerea parametrilor |
| Depozitare | O locație fixă selectată de compilator | Sunt ținute pe stivă |
| Valoare | Odată ce valoarea se schimbă, aceasta se reflectă în întregul cod | odată modificată, variabila nu afectează alte funcții ale programului |