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 |