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 |