Mõista globaalsete muutujate ulatust pythonis

Understand Global Variables Scope Python



Enamikus programmeerimiskeeltes saab määratleda kahte tüüpi muutujaid. Need on globaalsed muutujad ja kohalikud muutujad. Muutujaid, mis on määratletud väljaspool funktsiooni, nimetatakse globaalseks muutujaks. See muutuja on saadaval ja muudetav kõikjal skriptis. Funktsiooni sees deklareeritud muutujat nimetatakse kohalikuks muutujaks. Aga kui globaalsete ja kohalike muutujatega on sama muutuja nimi, saab funktsiooni sees olev muutuja prioriteedi ja globaalse muutuja väärtust eiratakse. Globaalse muutuja ulatust pythoni skriptis näidatakse selles õpetuses, kasutades erinevaid näiteid.

Näide 1: globaalse muutuja lihtne kasutamine

Järgmine näide näitab globaalse muutuja lihtsat kasutamist funktsiooni sees ja väljaspool seda. Siin on globaalne muutuja nimega teksti kasutatakse stringi andmete määramiseks. Kohandatud funktsioon nimega printMessage () on määratud globaalse muutuja väärtuse printimiseks. Väärtus teksti muutuja trükitakse pärast väärtuse muutmist funktsiooni sees ja väljaspool funktsiooni.







#!/usr/bin/env python3

# Määratlege globaalne muutuja
teksti= 'Tere tulemast LinuxHint'i!'

# Määrake funktsioon
defprintMessage():

# Printige globaalne muutuja funktsioonist
printida(Funktsioon globaalne muutuja: n',teksti)

# Helistage funktsioonile
printMessage()

# Muutke globaalse muutuja väärtust
teksti= 'Õpi Pythoni programmeerimist'

# Printige globaalse muutuja praegune väärtus
printida(„Globaalne muutuja väljaspool funktsiooni: n',teksti)

Väljund:



Pärast skripti käivitamist kuvatakse järgmine väljund. See trükkis väärtuse ' Tere tulemast LinuxHinti ' mis määratakse muutujale enne funktsiooni kutsumist. Seejärel trükkis see väärtuse, 'Õpi Pythoni programmeerimist' pärast muutuja väärtuse muutmist.







Näide-2: sama nimega globaalse ja kohaliku muutuja kasutamine

Kui soovite deklareerida muutuja nime funktsioonis, mis on pythonis juba globaalse muutujana deklareeritud ja soovite seda kasutada, käsitleb see muutujat kohaliku muutujana ja tekitab vea. Järgmine skript näitab viga. Siin, teksti muutuja on määratletud kui globaalne ja kohalik muutuja.

#!/usr/bin/env python3

# Määratlege globaalne muutuja
teksti= 'Mulle meeldib Python'

# Määrake funktsioon
defprintMessage():
printida(teksti)

teksti= 'Mulle meeldib PHP'

# Helistage funktsioonile
printMessage()

Väljund:



Pärast skripti käivitamist kuvatakse järgmine väljund.

Ülaltoodud olukorra vältimiseks ja kui soovite kuulutada sama nimega kohaliku muutuja globaalse muutujaks, peate kõigepealt määrama kohaliku muutuja funktsiooni sees. Järgmine skript näitab, et kohaliku muutuja muudatused ei muuda globaalset muutujat. teksti muutuja trükitakse siin funktsioonist sisse ja välja.

#!/usr/bin/env python3

# Määratlege globaalne muutuja
teksti= 'Mulle meeldib Python'

# Määrake funktsioon
defprintMessage():
# Kaaluge kohalikku väärtust
teksti= 'Mulle meeldib PHP'
# Printige kohalik muutuja, tekst
printida(Funktsiooni „teksti” väärtus: n',teksti)

# Helistage funktsioonile
printMessage()

# Printige globaalne muutuja, tekst
printida(Välise funktsiooni „teksti” väärtus: n',teksti)

Väljund:

Pärast skripti käivitamist kuvatakse järgmine väljund.

Näide-3: globaalse muutuja kasutamine funktsiooni sees

Eelmine näide näitab, et globaalne muutuja pole funktsiooni sees juurdepääsetav. Sa võid kasutada globaalne märksõna, et pääseda globaalsele muutujale mis tahes funktsioonist. Järgmises skriptis cal_percentage () funktsioon on määratud arvutama protsendi mis tahes arvust, kus kasutatakse nii globaalseid kui ka kohalikke muutujaid. Siin, ühe peale on globaalne muutuja ja perVal on kohalik muutuja. globaalne märksõna kasutatakse siin globaalse muutuja tuvastamiseks funktsiooni sees ja globaalse muutuja väärtust muudetakse funktsiooni sees.

#!/usr/bin/env python3

# Võtke täisarv
ühe peale= int(sisend('Sisestage number:'))

# Määrake funktsioon
defcal_percentage():
# Tuvastage globaalne muutuja globaalse märksõna abil
globaalneühe peale

# Võtke täisarv täisväärtusena
perVal= int(sisend('Sisestage protsentuaalne väärtus:'))

# Arvutage protsentuaalne väärtus
tulemus= hõljuma((kas *perVal)/100)

# Printige vormindatud tulemus
printida(' %d protsent %d = %f'%(perVal,ühe peale,tulemus))

# Muutke globaalse muutuja väärtust
ühe peale= 500

# Printige globaalse muutuja väärtus enne funktsiooni kutsumist
printida(' nVäärtus num = %d '%ühe peale)

# Helistage funktsioonile
cal_percentage()

# Printige globaalse muutuja väärtus pärast funktsiooni kutsumist
printida(' nVäärtus num = %d '%ühe peale)

Väljund:

Pärast skripti käivitamist kuvatakse järgmine väljund. Siin arvutatakse ja trükitakse 10% 350 -st.

Näide-4: globaalsete muutujate kasutamine teisest skriptist

Järgmine näide näitab, kuidas ühes skriptis deklareeritud globaalset muutujat saab kasutada teises skriptis. Oletame, et failinimi on global6.py mis kasutab nimega failis määratletud globaalseid muutujaid global5.py . Aastal on deklareeritud kolm globaalset muutujat global5.py . Peate importima ülemaailmne 5 kasutada muutujaid teises skriptis. Aasta stsenaarium global6.py arvutab sisendväärtuste ja globaalsete muutujate põhjal kolme tüüpi töötajate palga.

#!/usr/bin/env python3
# see on global5.py fail

# Ettevõtte põhiline palgastruktuur
Põhiline= 5000
Meditsiiniline= 500
Transport= 500 #!/usr/bin/env python3
# see on global6.py fail

# Importige globaalsed muutujad saidist global5.py
importülemaailmne 5

# Võtke töötaja nimi
nimi= sisend('Sisestage töötaja nimi:')
# Võtke postituse nimi
postitada= sisend('Sisestage postitus:')

# Initsialiseeri veamuutuja
viga= Vale

# Kontrollige postitust ja määrake postituse alusel põhipalk
kui(postitada.ülemine() == 'TEGEVDIREKTOR'):
põhiline=ülemaailmne 5.Põhiline+(ülemaailmne 5.Põhiline*0.4)
elif(postitada.ülemine() == 'JUHT'):
põhiline=ülemaailmne 5.Põhiline+(ülemaailmne 5.Põhiline*0,25)
elif(postitada.ülemine() == 'KIRJUTAJA'):
põhiline=ülemaailmne 5.Põhiline+(ülemaailmne 5.Põhiline*0,15)
muidu:
# Määra tõele tõene, kui postituse väärtust ei leitud
viga= Tõsi

# Prindi palk, kui viga on kiire
kui (viga== Vale):
palk=põhi + globaalne5.Meditsiiniline+ ülemaailmne 5.Transport
printida(' %S palk on %d'%(nimi,palk))
muidu:
printida('Postitust ei leitud')

Väljund:

Pärast skripti käivitamist kuvatakse järgmine väljund. Siin käivitatakse skript kaks korda kehtiva ja kehtetu postitusega.

Järeldus:

Globaalse muutuja mõistet pythonis selgitatakse selles õpetuses erinevate lihtsate näidetega uutele Pythoni kasutajatele. Loodan, et lugejad saavad pärast selle õpetuse lugemist asjakohaseid teadmisi nii globaalsete kui ka kohalike muutujate kohta.

Vaata autori videot: siin