logo

Variabile globale și locale în Python

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