Razumeti obseg globalnih spremenljivk v pythonu

Understand Global Variables Scope Python



V večini programskih jezikov je mogoče opredeliti dve vrsti spremenljivk. To so globalne in lokalne spremenljivke. Spremenljivke, ki so definirane zunaj funkcije, imenujemo globalna spremenljivka. Ta spremenljivka je dostopna in spremenljiva od koder koli v skriptu. Spremenljivka, ki je deklarirana znotraj funkcije, se imenuje lokalna spremenljivka. Če pa isto ime spremenljivke obstaja kot globalne in lokalne spremenljivke, bo spremenljivka znotraj funkcije dobila prednost, vrednost globalne spremenljivke pa ne bo upoštevana. Obseg globalne spremenljivke v skriptu python je v tej vadnici prikazan z različnimi primeri.

Primer 1: Enostavna uporaba globalne spremenljivke

Naslednji primer prikazuje preprosto uporabo globalne spremenljivke znotraj funkcije in zunaj nje. Tukaj je globalna spremenljivka z imenom besedilo se uporablja za dodelitev podatkov niza. Imenovana funkcija po meri printMessage () je definiran za tiskanje vrednosti globalne spremenljivke. Vrednost besedilo spremenljivka se natisne znotraj funkcije in zunaj funkcije po spremembi vrednosti.







#!/usr/bin/env python3

# Določite globalno spremenljivko
besedilo= 'Dobrodošli v LinuxHintu'

# Določite funkcijo
defprintMessage():

# Natisnite globalno spremenljivko iz funkcije
tiskanje('Globalna spremenljivka znotraj funkcije: n',besedilo)

# Pokličite funkcijo
printMessage()

# Spremenite vrednost globalne spremenljivke
besedilo= 'Naučite se programiranja Python'

# Natisnite trenutno vrednost globalne spremenljivke
tiskanje(„Globalna spremenljivka zunaj funkcije: n',besedilo)

Izhod:



Po zagonu skripta se prikaže naslednji izhod. Natisnila je vrednost ' Dobrodošli v LinuxHint ' ki je spremenljivki dodeljena pred klicem funkcije. Nato je natisnila vrednost, 'Naučite se programiranja Python' po spremembi vrednosti spremenljivke.







Primer 2: Uporaba globalne in lokalne spremenljivke z istim imenom

Če želite razglasiti ime spremenljivke znotraj funkcije, ki je že bila predhodno razglašena za globalno spremenljivko v pythonu in želite uporabiti spremenljivko, bo spremenljivko obravnavala kot lokalno spremenljivko in ustvarila napako. Naslednji skript bo pokazal napako. Tukaj, besedilo spremenljivka je definirana kot globalna in lokalna spremenljivka.

#!/usr/bin/env python3

# Določite globalno spremenljivko
besedilo= 'Všeč mi je Python'

# Določite funkcijo
defprintMessage():
tiskanje(besedilo)

besedilo= 'Všeč mi je PHP'

# Pokličite funkcijo
printMessage()

Izhod:



Po zagonu skripta se prikaže naslednji izhod.

Da bi se izognili zgornji situaciji in če želite lokalno spremenljivko z istim imenom razglasiti kot globalno spremenljivko, morate najprej dodeliti lokalno spremenljivko znotraj funkcije. Naslednji skript prikazuje, da spremembe v lokalni spremenljivki ne spremenijo globalne spremenljivke. besedilo spremenljivka je natisnjena znotraj in zunaj funkcije tukaj.

#!/usr/bin/env python3

# Določite globalno spremenljivko
besedilo= 'Všeč mi je Python'

# Določite funkcijo
defprintMessage():
# Zamislite lokalno vrednost
besedilo= 'Všeč mi je PHP'
# Natisnite lokalno spremenljivko, besedilo
tiskanje('Vrednost' besedila 'znotraj funkcije: n',besedilo)

# Pokličite funkcijo
printMessage()

# Natisnite globalno spremenljivko, besedilo
tiskanje('Vrednost' besedila 'zunaj funkcije: n',besedilo)

Izhod:

Po zagonu skripta se prikaže naslednji izhod.

Primer 3: Uporaba globalne spremenljivke znotraj funkcije

Prejšnji primer kaže, da globalna spremenljivka ni dostopna znotraj funkcije. Lahko uporabiš globalnega ključno besedo za dostop do globalne spremenljivke iz katere koli funkcije. V naslednjem scenariju cal_percentage () Funkcija je definirana za izračun odstotka katerega koli števila, kjer se uporabljajo tako globalne kot lokalne spremenljivke. Tukaj, na enem je globalna spremenljivka in perVal je lokalna spremenljivka. globalno Ključna beseda se tukaj uporablja za identifikacijo globalne spremenljivke znotraj funkcije, vrednost globalne spremenljivke pa se znotraj funkcije spremeni.

#!/usr/bin/env python3

# Vzemite celo število
na enem= int(vnos('Vnesite številko:'))

# Določite funkcijo
defcal_percentage():
# Prepoznajte globalno spremenljivko z uporabo ključne besede global
globalnona enem

# Vzemite celo število kot odstotek
perVal= int(vnos('Vnesite odstotno vrednost:'))

# Izračunajte odstotno vrednost
rezultat= plavati((ali *perVal)/100)

# Natisnite formatirani rezultat
tiskanje(' %d odstotek %d = %f'%(perVal,na enem,rezultat))

# Spremenite vrednost globalne spremenljivke
na enem= 500

# Pred klicem funkcije natisnite vrednost globalne spremenljivke
tiskanje(' nVrednost num = %d '%na enega)

# Pokličite funkcijo
cal_percentage()

# Natisnite vrednost globalne spremenljivke po klicu funkcije
tiskanje(' nVrednost num = %d '%na enega)

Izhod:

Po zagonu skripta se prikaže naslednji izhod. Tu se izračuna in natisne 10% od 350.

Primer 4: uporaba globalnih spremenljivk iz drugega skripta

Naslednji primer prikazuje, kako se lahko globalna spremenljivka, deklarirana v enem skriptu, uporabi v drugem skriptu. Recimo, da je ime datoteke global6.py ki bodo uporabljale globalne spremenljivke, določene v datoteki z imenom global5.py . Tri globalne spremenljivke so deklarirane v global5.py . Uvoziti morate globalno5 za uporabo spremenljivk v drugem skriptu. Scenarij global6.py bo na podlagi vhodnih vrednosti in globalnih spremenljivk izračunal plačo treh vrst zaposlenih.

#!/usr/bin/env python3
# to je datoteka global5.py

# Osnovna struktura plač podjetja
Osnovno= 5000
Medicinski= 500
Transport= 500 #!/usr/bin/env python3
# to je datoteka global6.py

# Uvozite globalne spremenljivke iz global5.py
uvozglobalno5

# Vzemite ime zaposlenega
ime= vnos('Vnesite ime zaposlenega:')
# Vzemite ime objave
objava= vnos('Vnesite objavo:')

# Inicializirajte spremenljivko napake
napaka= Napačno

# Preverite delovno mesto in nastavite osnovno plačo glede na objavo
če(objava.zgornji() == 'DIREKTOR'):
osnovno=globalno5.Osnovno+(globalno5.Osnovno*0,4)
elif(objava.zgornji() == 'VODITELJ'):
osnovno=globalno5.Osnovno+(globalno5.Osnovno*0,25)
elif(objava.zgornji() == 'RAČUNOVODJEC'):
osnovno=globalno5.Osnovno+(globalno5.Osnovno*0,15)
drugače:
# Če napake ni mogoče najti, nastavite napako na true
napaka= Prav

# Natisnite plačo, če je napaka napačna
če (napaka== Napačno):
plačo=osnovno + globalno5.Medicinski+ globalno5.Transport
tiskanje('Plača %s je %d'%(ime,plačo))
drugače:
tiskanje('Objava ni najdena')

Izhod:

Po zagonu skripta se prikaže naslednji izhod. Tu se skript izvede dvakrat z veljavno objavo in neveljavno objavo.

Zaključek:

Koncept globalne spremenljivke v pythonu je razložen v tej vadnici z različnimi preprostimi primeri za nove uporabnike pythona. Upam, da bodo bralci po branju te vadnice dobili ustrezno znanje o globalnih in lokalnih spremenljivkah.

Oglejte si avtorjev video: tukaj