logo

Globale og lokale variabler i Python

Python globale variabler er dem, der ikke er defineret i nogen funktion og har et globalt omfang, hvorimod Python lokale variabler er dem, der er defineret inde i en funktion, og deres omfang er begrænset til kun den funktion. Med andre ord kan vi sige, at lokale variabler kun er tilgængelige i den funktion, hvori den blev initialiseret, mens de globale variabler er tilgængelige i hele programmet og inde i hver funktion.

Python lokale variabler

Lokale variabler i Python er dem, der initialiseres inde i en funktion og kun hører til den pågældende funktion. Det kan ikke tilgås nogen steder uden for funktionen. Lad os se, hvordan du opretter en lokal variabel.

Oprettelse af lokale variabler i Python

Definere og få adgang til lokale variabler



Python3




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

>

>

Produktion

I love Geeksforgeeks>

Kan en lokal variabel bruges uden for en funktion?

Hvis vi vil forsøge at bruge denne lokale variabel uden for funktionen, så lad os se, hvad der vil ske.

Python3




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

hvad er hive

>

>

Produktion:

 NameError : name 's' is not defined>

Python globale variabler

Disse er dem, der er defineret uden for enhver funktion, og som er tilgængelige i hele programmet, dvs. inden for og uden for hver funktion. Lad os se, hvordan man opretter en global Python-variabel.

Opret en global variabel i Python

Definere og få adgang 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)>

>

>

Produktion

Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>

Variablen s er defineret som den globale variabel og bruges både i funktionen såvel som uden for funktionen.

Bemærk: Da der ikke er nogen lokale, vil værdien fra globalerne blive brugt, men sørg for, at både de lokale og de globale variabler skal have samme navn.

Hvorfor bruger vi lokale og globale variabler i Python?

Hvad nu hvis der er en Python-variabel med samme navn initialiseret i en funktion såvel som globalt? Nu opstår spørgsmålet, vil den lokale variabel have en effekt på den globale variabel eller omvendt, og hvad vil der ske, hvis vi ændrer værdien af ​​en variabel inde i funktionen f()? Vil det også påvirke globalerne? Vi tester det i følgende stykke kode:

Eksempel

Hvis en variabel med samme navn også er defineret inden for funktionens omfang, vil den kun udskrive den værdi, der er givet inde i funktionen og ikke den globale værdi.

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

>

>

Produktion

Me too. I love Geeksforgeeks>

Hvad nu hvis vi forsøger at ændre værdien af ​​en global variabel inde i funktionen? Lad os se det ved at bruge nedenstående eksempel.

Python3




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

>

>

Produktion:

 UnboundLocalError : local variable 's' referenced before assignment>

For at få ovenstående program til at fungere, skal vi bruge det globale søgeord i Python. Lad os se, hvad dette globale søgeord er.

Det globale søgeord

Vi skal kun bruge globalt søgeord i en funktion, hvis vi vil lave opgaver eller ændre den globale variabel. global er ikke nødvendig for udskrivning og adgang. Python antager, at vi ønsker en lokal variabel på grund af tildelingen til s inde i f(), så den første sætning sender fejlmeddelelsen. Enhver variabel, der ændres eller oprettes inde i en funktion, er lokal, hvis den ikke er blevet erklæret som en global variabel. For at fortælle Python, at vi vil bruge den globale variabel, skal vi bruge nøgleordet global , som det kan ses i følgende eksempel:

Eksempel 1: Bruger Python globalt søgeord

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

>

>

Produktion

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

Nu er der ingen tvetydighed.

Eksempel 2: Brug af 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)>

>

>

Produktion

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

Forskel s/h Lokal variabel vs. Globale variabler

Sammenligningsgrundlag Global variabel Lokal variabel
Definition erklæret uden for funktionerne erklæret inden for funktionerne
Livstid De oprettes, når programmet starter og går tabt, når programmet er afsluttet De oprettes, når funktionen starter sin udførelse og går tabt, når funktionen slutter
Datadeling Tilbyder datadeling Det tilbyder ikke datadeling
Omfang Kan fås i hele koden Kan kun få adgang inde i funktionen
Parametre nødvendige parameteroverførsel er ikke nødvendig parameteroverførsel er nødvendig
Opbevaring En fast placering valgt af compileren De holdes på stakken
Værdi Når værdien ændres, afspejles den i hele koden en gang ændret variablen påvirker ikke andre funktioner i programmet