logo

Globala och lokala variabler i Python

Python Globala variabler är de som inte är definierade i någon funktion och har ett globalt omfång medan Python lokala variabler är de som är definierade i en funktion och deras omfattning är begränsad till endast den funktionen. Med andra ord kan vi säga att lokala variabler endast är tillgängliga i funktionen där den initierades, medan de globala variablerna är tillgängliga i hela programmet och i varje funktion.

Python lokala variabler

Lokala variabler i Python är de som initieras inuti en funktion och bara tillhör den specifika funktionen. Den kan inte nås någonstans utanför funktionen. Låt oss se hur man skapar en lokal variabel.



natasha dalal

Skapa lokala variabler i Python

Definiera och komma åt lokala variabler

Python3








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

>

>

Produktion

I love Geeksforgeeks>

Kan en lokal variabel användas utanför en funktion?

Om vi ​​försöker använda den här lokala variabeln utanför funktionen, låt oss se vad som kommer att hända.

Python3




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

>

>

Produktion:

 NameError : name 's' is not defined>

Python Global Variables

Dessa är de som är definierade utanför vilken funktion som helst och som är tillgängliga i hela programmet, det vill säga inom och utanför varje funktion. Låt oss se hur man skapar en global Python-variabel.

Skapa en global variabel i Python

Definiera och komma åt Python globala variabler.

Python3




namnkonvention java

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

Variabeln s definieras som den globala variabeln och används både inuti funktionen och utanför funktionen.

Notera: Eftersom det inte finns några lokala, kommer värdet från globalerna att användas, men se till att både de lokala och de globala variablerna ska ha samma namn.

Varför använder vi lokala och globala variabler i Python?

Nu, vad händer om det finns en Python-variabel med samma namn initierad i en funktion såväl som globalt? Nu uppstår frågan, kommer den lokala variabeln att ha någon effekt på den globala variabeln eller vice versa, och vad händer om vi ändrar värdet på en variabel inuti funktionen f()? Kommer det att påverka globalerna också? Vi testar det i följande kodbit:

Exempel

Om en variabel med samma namn också definieras inom funktionens omfång, kommer den att skriva ut endast värdet som ges i funktionen och inte det globala värdet.

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>

Vad händer nu om vi försöker ändra värdet på en global variabel inuti funktionen? Låt oss se det med exemplet nedan.

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>

För att få programmet ovan att fungera måste vi använda det globala nyckelordet i Python. Låt oss se vad detta globala sökord är.

Det globala nyckelordet

Vi behöver bara använda globalt sökord i en funktion om vi vill göra tilldelningar eller ändra den globala variabeln. global behövs inte för utskrift och åtkomst. Python antar att vi vill ha en lokal variabel på grund av tilldelningen till s inuti f(), så den första satsen skickar felmeddelandet. Varje variabel som ändras eller skapas inuti en funktion är lokal om den inte har deklarerats som en global variabel. För att säga till Python att vi vill använda den globala variabeln måste vi använda nyckelordet global , som kan ses i följande exempel:

Exempel 1: Använder Python globala nyckelord

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

filmwebbplatser som liknar 123movies
>

>

Produktion

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

Nu är det ingen tvetydighet.

Exempel 2: Använda Python globala och lokala 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>

Skillnad svart/vit lokal variabel vs. Globala variabler

Jämförelsegrund Global variabel Lokal variabel
Definition deklareras utanför funktionerna deklareras inom funktionerna
Livstid De skapas när programmet startar och går förlorade när programmet avslutas De skapas när funktionen startar sin exekvering och går förlorade när funktionen avslutas
Datadelning Erbjuder datadelning Det erbjuder inte datadelning
Omfattning Kan nås genom hela koden Kan endast komma åt inuti funktionen
Parametrar behövs parameterpassering är inte nödvändig parameterpassering är nödvändig
Lagring En fast plats vald av kompilatorn De hålls på traven
Värde När värdet ändras återspeglas det i hela koden en gång ändrad variabeln påverkar inte andra funktioner i programmet