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 |