logo

Globalne in lokalne spremenljivke v Pythonu

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 udp
Izhod

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