logo

Globálne a lokálne premenné v Pythone

Globálne premenné Pythonu sú tie, ktoré nie sú definované v žiadnej funkcii a majú globálny rozsah, zatiaľ čo Python lokálne premenné sú tie, ktoré sú definované vo vnútri funkcie a ich rozsah je obmedzený len na túto funkciu. Inými slovami, môžeme povedať, že lokálne premenné sú prístupné iba vo funkcii, v ktorej boli inicializované, zatiaľ čo globálne premenné sú prístupné v rámci programu a vo vnútri každej funkcie.

Miestne premenné Pythonu

Lokálne premenné v Pythone sú tie, ktoré sú inicializované vo vnútri funkcie a patria iba k tejto konkrétnej funkcii. Nie je možné k nemu pristupovať nikde mimo funkcie. Pozrime sa, ako vytvoriť lokálnu premennú.

Vytváranie lokálnych premenných v Pythone

Definovanie a prístup k lokálnym premenným



Python3




def> f():> ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(s)> # Driver code> f()>

>

>

Výkon

získať spojenie
I love Geeksforgeeks>

Môže byť lokálna premenná použitá mimo funkcie?

Ak sa pokúsime použiť túto lokálnu premennú mimo funkcie, uvidíme, čo sa stane.

Python3




def> f():> > ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(>'Inside Function:'>, s)> # Driver code> f()> print>(s)>

>

>

Výkon:

 NameError : name 's' is not defined>

Globálne premenné Pythonu

Sú to tie, ktoré sú definované mimo akejkoľvek funkcie a ktoré sú prístupné v rámci programu, t. j. vnútri a mimo každej funkcie. Pozrime sa, ako vytvoriť globálnu premennú Pythonu.

Vytvorte globálnu premennú v Pythone

Definovanie globálnych premenných Pythonu a prístup k nim.

Python3




# This function uses global variable s> def> f():> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(>'Outside Function'>, s)>

sql výber viacerých tabuliek

>

>

Výkon

Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>

Premenná s je definovaná ako globálna premenná a používa sa vo vnútri funkcie aj mimo nej.

Poznámka: Keďže neexistujú žiadne lokálne, použije sa hodnota z globálnych hodnôt, ale uistite sa, že lokálne aj globálne premenné by mali mať rovnaký názov.

Prečo v Pythone používame lokálne a globálne premenné?

Teraz, čo ak existuje premenná Pythonu s rovnakým názvom inicializovaná vo funkcii, ako aj globálne? Teraz vyvstáva otázka, bude mať lokálna premenná nejaký vplyv na globálnu premennú alebo naopak, a čo sa stane, ak zmeníme hodnotu premennej vo vnútri funkcie f()? Ovplyvní to aj globálne? Testujeme to v nasledujúcom kúsku kódu:

Príklad

Ak je v rámci funkcie definovaná aj premenná s rovnakým názvom, vypíše iba hodnotu uvedenú vo funkcii a nie globálnu hodnotu.

Python3




# 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)>

>

nudný unikát

>

Výkon

Me too. I love Geeksforgeeks>

Čo keby sme sa teraz pokúsili zmeniť hodnotu globálnej premennej vo funkcii? Pozrime sa na to pomocou nižšie uvedeného príkladu.

Python3


git pokladňa



# This function uses global variable s> def> f():> >s>+>=> 'GFG'> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()>

>

>

Výkon:

 UnboundLocalError : local variable 's' referenced before assignment>

Aby vyššie uvedený program fungoval, musíme v Pythone použiť globálne kľúčové slovo. Pozrime sa, čo je toto globálne kľúčové slovo.

Globálne kľúčové slovo

Musíme použiť iba globálne kľúčové slovo vo funkcii, ak chceme robiť priradenia alebo meniť globálnu premennú. globálny nie je potrebný na tlač a prístup. Python predpokladá, že chceme lokálnu premennú kvôli priradeniu k s vnútri f(), takže prvý príkaz vyvolá chybové hlásenie. Akákoľvek premenná, ktorá sa zmení alebo vytvorí vo funkcii, je lokálna, ak nebola deklarovaná ako globálna premenná. Aby sme Pythonu povedali, že chceme použiť globálnu premennú, musíme použiť kľúčové slovo globálne , ako je možné vidieť na nasledujúcom príklade:

Príklad 1: Použitie globálneho kľúčového slova 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)>

>

>

Výkon

Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section>

Teraz tu nie sú žiadne nejasnosti.

Príklad 2: Používanie globálnych a lokálnych premenných Pythonu

Python3


vylepšené pre loop java



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)>

>

>

Výkon

global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3>

Rozdiel b/w Lokálna premenná vs. Globálne premenné

Základ porovnania Globálna premenná Miestna premenná
Definícia deklarované mimo funkcií deklarované v rámci funkcií
Život Sú vytvorené, spúšťanie programu začína a sú stratené, keď je program ukončený Vytvárajú sa, keď funkcia začne vykonávať svoju činnosť, a stratia sa, keď funkcia skončí
Zdieľanie údajov Ponúka zdieľanie dát Neponúka zdieľanie údajov
Rozsah Môže byť prístupný v celom kóde Prístup je možný iba vo vnútri funkcie
Potrebné parametre odovzdávanie parametrov nie je potrebné je potrebné odovzdať parametre
Skladovanie Pevné miesto vybrané kompilátorom Sú uložené na stohu
Hodnota Akonáhle sa hodnota zmení, prejaví sa v celom kóde raz zmenená premenná neovplyvní ostatné funkcie programu