Globalne spremenljivke Python so tisti, ki niso definirani znotraj nobene funkcije in imajo globalni obseg, medtem ko Python lokalne spremenljivke so tisti, ki so definirani znotraj funkcije in njihov obseg je omejen samo na to funkcijo. Z drugimi besedami, lahko rečemo, da so lokalne spremenljivke dostopne samo znotraj funkcije, v kateri je bila inicializirana, medtem ko so globalne spremenljivke dostopne v celotnem programu in znotraj vsake funkcije.
Lokalne spremenljivke Python
Lokalne spremenljivke v Pythonu so tiste, ki so inicializirane znotraj funkcije in pripadajo samo tej določeni funkciji. Do njega ni mogoče dostopati nikjer zunaj funkcije. Poglejmo, kako ustvariti lokalno spremenljivko.
Ustvarjanje lokalnih spremenljivk v Pythonu
Definiranje in dostop do lokalnih spremenljivk
Python3
def> f():> > # local variable> > s> => 'I love Geeksforgeeks'> > print> (s)> # Driver code> f()> |
>
>Izhod
I love Geeksforgeeks>
Ali je mogoče lokalno spremenljivko uporabiti zunaj funkcije?
Če bomo poskusili uporabiti to lokalno spremenljivko zunaj funkcije, potem poglejmo, kaj se bo zgodilo.
Python3
kaj je datotečni sistem linux
def> f():> > > # local variable> > s> => 'I love Geeksforgeeks'> > print> (> 'Inside Function:'> , s)> # Driver code> f()> print> (s)> |
>
spajanje razvrščanje v Javi
>
Izhod:
NameError : name 's' is not defined>
Globalne spremenljivke Python
To so tisti, ki so definirani zunaj katere koli funkcije in so dostopni v celotnem programu, tj. znotraj in zunaj vsake funkcije. Poglejmo, kako ustvariti globalno spremenljivko Python.
Ustvarite globalno spremenljivko v Pythonu
Definiranje in dostop do globalnih spremenljivk Python.
Python3
# This function uses global variable s> def> f():> > print> (> 'Inside Function'> , s)> # Global scope> s> => 'I love Geeksforgeeks'> f()> print> (> 'Outside Function'> , s)> |
>
>Izhod
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>
Spremenljivka s je definirana kot globalna spremenljivka in se uporablja tako znotraj funkcije kot tudi zunaj nje.
Opomba: Ker ni lokalnih spremenljivk, bo uporabljena vrednost iz globalnih spremenljivk, vendar se prepričajte, da morata imeti tako lokalna kot globalna spremenljivka isto ime.
Zakaj v Pythonu uporabljamo lokalne in globalne spremenljivke?
Kaj pa, če obstaja spremenljivka Python z istim imenom, inicializirana znotraj funkcije in tudi globalno? Sedaj se pojavi vprašanje, ali bo lokalna spremenljivka vplivala na globalno spremenljivko ali obratno in kaj se bo zgodilo, če spremenimo vrednost spremenljivke znotraj funkcije f()? Bo to vplivalo tudi na globale? Preizkusimo ga v naslednjem delu kode:
Primer
Če je spremenljivka z istim imenom definirana tudi znotraj obsega funkcije, bo natisnila samo vrednost, podano znotraj funkcije, in ne globalne vrednosti.
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)> |
>
>
protokol udpIzhod
Me too. I love Geeksforgeeks>
Kaj pa, če poskušamo spremeniti vrednost globalne spremenljivke znotraj funkcije? Oglejmo si to s spodnjim primerom.
Python3
# This function uses global variable s> def> f():> > s> +> => 'GFG'> > print> (> 'Inside Function'> , s)> # Global scope> s> => 'I love Geeksforgeeks'> f()> |
>
>
Izhod:
UnboundLocalError : local variable 's' referenced before assignment>
Da bo zgornji program deloval, moramo v Pythonu uporabiti globalno ključno besedo. Poglejmo, kaj je ta globalna ključna beseda.
Globalna ključna beseda
Uporabiti moramo samo globalna ključna beseda v funkciji, če želimo opraviti dodelitve ali spremeniti globalno spremenljivko. global ni potreben za tiskanje in dostop. Python predvideva, da želimo lokalno spremenljivko zaradi dodelitve s znotraj f(), zato prvi stavek vrže sporočilo o napaki. Vsaka spremenljivka, ki je spremenjena ali ustvarjena znotraj funkcije, je lokalna, če ni bila deklarirana kot globalna spremenljivka. Če želimo Pythonu povedati, da želimo uporabiti globalno spremenljivko, moramo uporabiti ključno besedo globalno , kot je razvidno iz naslednjega primera:
Primer 1: Uporaba globalne ključne besede Python
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)> |
>
>Izhod
Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section>
Zdaj ni dvoumnosti.
Primer 2: Uporaba globalnih in lokalnih spremenljivk Python
Python3
relacijska algebra v rdbms
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)> |
>
>Izhod
global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3>
Razlika črno-bela lokalna spremenljivka vs. Globalne spremenljivke
Osnova primerjave | Globalna spremenljivka | Lokalna spremenljivka |
Opredelitev | deklarirano zunaj funkcij | deklarirano znotraj funkcij |
Življenska doba | Ustvarijo se, ko se začne izvajanje programa, in se izgubijo, ko se program konča | Ustvarijo se, ko se funkcija začne z izvajanjem, in se izgubijo, ko se funkcija konča |
Skupna raba podatkov | Ponuja skupno rabo podatkov | Ne ponuja skupne rabe podatkov |
Obseg | Možen dostop do celotne kode | Dostop je mogoč samo znotraj funkcije |
Potrebni parametri | posredovanje parametrov ni potrebno | je potrebno posredovanje parametrov |
Shranjevanje | Fiksna lokacija, ki jo izbere prevajalnik | Hranijo se na skladu |
Vrednost | Ko se vrednost spremeni, se odraža v celotni kodi | ko spremenite spremenljivko, ne vpliva na druge funkcije programa |