Globaalit ja paikalliset muuttujat Pythonissa

Pythonin globaalit muuttujat ovat sellaisia, joita ei ole määritelty minkään funktion sisällä ja joilla on globaali laajuus, kun taas Python paikalliset muuttujat ovat ne, jotka on määritelty funktion sisällä, ja niiden soveltamisala on rajoitettu vain tähän funktioon. Toisin sanoen voimme sanoa, että paikalliset muuttujat ovat käytettävissä vain sen funktion sisällä, jossa se alustettiin, kun taas globaaleihin muuttujiin pääsee käsiksi koko ohjelmassa ja jokaisen funktion sisällä.

Pythonin paikalliset muuttujat

Pythonin paikalliset muuttujat ovat niitä, jotka alustetaan funktion sisällä ja kuuluvat vain kyseiseen funktioon. Sitä ei voi käyttää mistään toiminnon ulkopuolelta. Katsotaan kuinka luodaan paikallinen muuttuja.

Paikallisten muuttujien luominen Pythonissa

Paikallisten muuttujien määrittäminen ja käyttö

Python 3




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

Lähtö

I love Geeksforgeeks 

Voidaanko paikallista muuttujaa käyttää funktion ulkopuolella?

Jos yritämme käyttää tätä paikallista muuttujaa funktion ulkopuolella, katsotaan mitä tapahtuu.

Python 3




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

Lähtö:

 NameError : name 's' is not defined 

Pythonin globaalit muuttujat

Nämä ovat niitä, jotka on määritelty minkä tahansa toiminnon ulkopuolella ja jotka ovat käytettävissä kaikkialla ohjelmassa, eli jokaisen funktion sisällä ja ulkopuolella. Katsotaan kuinka Pythonin globaali muuttuja luodaan.

Luo globaali muuttuja Pythonissa

Pythonin globaalien muuttujien määrittäminen ja käyttö.

Python 3




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

Lähtö

Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks 

Muuttuja s määritellään globaaliksi muuttujaksi ja sitä käytetään sekä funktion sisällä että sen ulkopuolella.

Huomautus: Koska paikallisia muuttujia ei ole, käytetään globaalien muuttujien arvoa, mutta varmista, että sekä paikallisilla että globaaleilla muuttujilla on oltava sama nimi.

Miksi käytämme paikallisia ja globaaleja muuttujia Pythonissa?

Entä jos funktion sisällä ja globaalisti on alustettu samanniminen Python-muuttuja? Nyt herää kysymys, onko paikallisella muuttujalla vaikutusta globaaliin muuttujaan vai päinvastoin, ja mitä tapahtuu, jos muutamme muuttujan arvoa funktion f() sisällä? Vaikuttaako se myös globaaleihin? Testaamme sitä seuraavassa koodissa:

Esimerkki

Jos samanniminen muuttuja on määritelty myös funktion sisällä, se tulostaa vain funktion sisällä annetun arvon, ei globaalia arvoa.

Python 3




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

Lähtö

Me too. I love Geeksforgeeks 

Entä jos yritämme muuttaa globaalin muuttujan arvoa funktion sisällä? Katsotaanpa sitä alla olevan esimerkin avulla.

Python 3




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

Lähtö:

 UnboundLocalError : local variable 's' referenced before assignment 

Jotta yllä oleva ohjelma toimisi, meidän on käytettävä yleistä avainsanaa Pythonissa. Katsotaanpa, mikä tämä globaali avainsana on.

Maailmanlaajuinen avainsana

Meidän tarvitsee vain käyttää globaali avainsana funktiossa, jos haluamme tehdä tehtäviä tai muuttaa globaalia muuttujaa. globaalia ei tarvita tulostamiseen ja käyttöön. Python olettaa, että haluamme paikallisen muuttujan johtuen s:n määrityksestä f(:n) sisällä, joten ensimmäinen lause antaa virheilmoituksen. Mikä tahansa muuttuja, jota muutetaan tai luodaan funktion sisällä, on paikallinen, jos sitä ei ole ilmoitettu globaaliksi muuttujaksi. Kerromme Pythonille, että haluamme käyttää globaalia muuttujaa, meidän on käytettävä avainsanaa maailmanlaajuisesti , kuten seuraavasta esimerkistä voidaan nähdä:

Esimerkki 1: Pythonin globaalin avainsanan käyttäminen

Python 3




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

Lähtö

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

Nyt ei ole epäselvyyttä.

Esimerkki 2: Pythonin globaalien ja paikallisten muuttujien käyttö

Python 3




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

Lähtö

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

Ero b/w Paikallinen muuttuja vs. Globaalit muuttujat

Vertailuperuste Globaali muuttuja Paikallinen muuttuja
Määritelmä ilmoitettu toimintojen ulkopuolelle ilmoitettu funktioissa
Elinikä Ne luodaan ohjelman suorittamisen alkaessa ja katoavat, kun ohjelma päättyy Ne luodaan, kun toiminto aloittaa suorituksensa, ja katoavat, kun toiminto päättyy
Tietojen jakaminen Tarjoaa tietojen jakamisen Se ei tarjoa tietojen jakamista
Laajuus Voidaan käyttää koko koodin ajan Pääsee vain toiminnon sisällä
Parametrit tarvitaan parametrien välittäminen ei ole välttämätöntä parametrien välitys on välttämätöntä
Varastointi Kääntäjän valitsema kiinteä paikka Niitä pidetään pinossa
Arvo Kun arvo muuttuu, se näkyy koko koodissa Kun muuttuja on muutettu, se ei vaikuta ohjelman muihin toimintoihin