logo

Globale og lokale variabler i Python

Python globale variabler er de som ikke er definert i noen funksjon og har et globalt omfang mens Python lokale variabler er de som er definert inne i en funksjon og deres omfang er begrenset til bare den funksjonen. Med andre ord kan vi si at lokale variabler bare er tilgjengelige i funksjonen den ble initialisert i, mens de globale variablene er tilgjengelige i hele programmet og i hver funksjon.

Python lokale variabler

Lokale variabler i Python er de som er initialisert inne i en funksjon og bare tilhører den bestemte funksjonen. Den kan ikke nås noe sted utenfor funksjonen. La oss se hvordan du lager en lokal variabel.



Opprette lokale variabler i Python

Definere og få tilgang til lokale variabler

Python3








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

>

>

Produksjon

I love Geeksforgeeks>

Kan en lokal variabel brukes utenfor en funksjon?

Hvis vi prøver å bruke denne lokale variabelen utenfor funksjonen, la oss se hva som vil skje.

Python3




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

k-nn algoritme

>

>

Produksjon:

 NameError : name 's' is not defined>

Python globale variabler

Dette er de som er definert utenfor enhver funksjon og som er tilgjengelig gjennom hele programmet, dvs. innenfor og utenfor hver funksjon. La oss se hvordan du lager en global Python-variabel.

Lag en global variabel i Python

Definere og få tilgang til Python globale variabler.

Python3




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

>

>

Produksjon

Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>

Variabelen s er definert som den globale variabelen og brukes både inne i funksjonen og utenfor funksjonen.

Merk: Siden det ikke er noen lokale, vil verdien fra globalene bli brukt, men sørg for at både de lokale og de globale variablene skal ha samme navn.

Hvorfor bruker vi lokale og globale variabler i Python?

Nå, hva om det er en Python-variabel med samme navn initialisert i en funksjon så vel som globalt? Nå oppstår spørsmålet, vil den lokale variabelen ha noen effekt på den globale variabelen eller omvendt, og hva vil skje hvis vi endrer verdien av en variabel inne i funksjonen f()? Vil det påvirke globalene også? Vi tester det i følgende kodebit:

Eksempel

Hvis en variabel med samme navn også er definert innenfor funksjonens omfang, vil den kun skrive ut verdien gitt i funksjonen og ikke den globale verdien.

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

>

>

Produksjon

Me too. I love Geeksforgeeks>

Nå, hva om vi prøver å endre verdien av en global variabel inne i funksjonen? La oss se det ved å bruke eksemplet nedenfor.

Python3




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

>

>

Produksjon:

 UnboundLocalError : local variable 's' referenced before assignment>

For å få programmet ovenfor til å fungere, må vi bruke det globale nøkkelordet i Python. La oss se hva dette globale søkeordet er.

Det globale nøkkelordet

Vi trenger bare å bruke globalt søkeord i en funksjon hvis vi ønsker å gjøre oppgaver eller endre den globale variabelen. global er ikke nødvendig for utskrift og tilgang. Python antar at vi vil ha en lokal variabel på grunn av tilordningen til s inne i f(), så den første setningen gir feilmeldingen. Enhver variabel som endres eller opprettes inne i en funksjon er lokal hvis den ikke har blitt erklært som en global variabel. For å fortelle Python at vi ønsker å bruke den globale variabelen, må vi bruke nøkkelordet global , som kan sees i følgende eksempel:

Eksempel 1: Bruker Python globalt nøkkelord

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

>

>

Produksjon

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

Nå er det ingen tvetydighet.

Eksempel 2: Bruker Python globale og lokale variabler

Python3




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

>

>

Produksjon

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

Forskjellen s/h lokal variabel vs. Globale variabler

Sammenligningsgrunnlag Global variabel Lokal variabel
Definisjon erklært utenfor funksjonene erklært innenfor funksjonene
Livstid De opprettes når programmet starter og går tapt når programmet avsluttes De opprettes når funksjonen starter utføringen og går tapt når funksjonen avsluttes
Datadeling Tilbyr datadeling Den tilbyr ikke datadeling
omfang Kan være tilgang gjennom hele koden Kan kun få tilgang inne i funksjonen
Parametre nødvendig parameteroverføring er ikke nødvendig parameteroverføring er nødvendig
Oppbevaring En fast plassering valgt av kompilatoren De holdes på stabelen
Verdi Når verdien endres, gjenspeiles den gjennom hele koden en gang endret variabelen påvirker ikke andre funksjoner i programmet