Selles artiklis saate teada globaalse märksõna, globaalse muutuja ja millal globaalseid märksõnu kasutada.
Enne selle artikli lugemist veenduge, et teil oleks Python globaalsete, kohalike ja mittekohalike muutujate põhitõed.
Mis on globaalne märksõna
Pythonis globalvõimaldab märksõna muuta muutujat väljaspool praegust ulatust. Seda kasutatakse globaalse muutuja loomiseks ja muutuja muutmiseks kohalikus kontekstis.
Üldise märksõna reeglid
globalPythoni märksõna põhireeglid on järgmised:
- Kui loome funktsiooni sisse muutuja, on see vaikimisi lokaalne.
- Kui defineerime muutuja väljaspool funktsiooni, on see vaikimisi globaalne. Te ei pea
globalmärksõna kasutama . - Me kasutame
globalmärksõna funktsiooni globaalse muutuja lugemiseks ja kirjutamiseks. - Kasutamine
globalmärksõna väljaspool funktsiooni ei mõjuta.
Ülemaailmse märksõna kasutamine
Võtame näite.
Näide 1: juurdepääs funktsiooni sees olevale globaalsele muutujale
c = 1 # global variable def add(): print(c) add()
Ülaltoodud programmi käivitamisel on väljund:
1
Kuid meil võib olla mõni stsenaarium, kus peame muutma globaalset muutujat funktsiooni seest.
Näide 2: globaalse muutuja muutmine funktsiooni seest
c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()
Kui käivitame ülaltoodud programmi, näitab väljund viga:
UnboundLocalError: enne määramist viidatud kohalikule muutujale „c”
Seda seetõttu, et meil on juurdepääs ainult globaalsele muutujale, kuid me ei saa seda funktsiooni sees muuta.
Selle lahenduseks on globalmärksõna kasutamine.
Näide 3: Globaalse muutuja muutmine funktsiooni seest globaalse muutuja abil
c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)
Ülaltoodud programmi käivitamisel on väljund:
Sees lisa (): 2 Põhiliselt: 2
Eespool toodud programmis määratleme add()funktsiooni globaalse märksõnana c .
Seejärel suurendame muutujat c 1, st c = c + 2. Pärast seda kutsume add()funktsiooni. Lõpuks printime globaalse muutuja c.
Nagu näeme, toimus muutus ka funktsiooni välisel globaalsel muutujal c = 2.
Üldised muutujad Pythoni moodulites
Pythonis loome ühe mooduli config.pyglobaalsete muutujate hoidmiseks ja teabe jagamiseks Pythoni moodulite vahel ühes ja samas programmis.
Nii saame globaalseid muutujaid jagada Pythoni moodulite vahel.
Näide 4: jagage Pythoni moodulite globaalset muutujat
Looge config.pyfail globaalsete muutujate salvestamiseks
a = 0 b = "empty"
Üldiste update.pymuutujate muutmiseks looge fail
import config config.a = 10 config.b = "alphabet"
main.pyVäärtuse muutuste testimiseks looge fail
import config import update print(config.a) print(config.b)
Kui käivitame main.pyfaili, on väljund
10 tähestikku
Eespool oleme loonud kolm faili: config.py, update.pyja main.py.
Moodul config.pysalvestab globaalsed muutujad a ja b. Kui update.pyfaili Toome config.pymoodul ja muuta väärtusi ja b. Samamoodi main.pyimpordime failis mõlemad config.pyja update.pymooduli. Lõpuks printime ja testime globaalsete muutujate väärtusi, olenemata sellest, kas neid muudetakse või mitte.
Globaalne pesastatud funktsioonides
Siit saate teada, kuidas pesastatud funktsioonis saab kasutada globaalset muutujat.
Näide 5: globaalse muutuja kasutamine pesastatud funktsioonis
def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x)
Väljund on:
Enne ribale helistamist: 20 Helistamisriba kohe Pärast helistamise riba: 20 x põhiliselt: 25
Ülalolevas programmis kuulutasime pesastatud funktsiooni sisse globaalse muutuja bar(). foo()Funktsiooni sees ei mõjuta x globaalset märksõna.
Enne ja pärast helistamist bar()võtab muutuja x kohaliku muutuja st x = 20. Väljaspool foo()funktsiooni saab muutuja x bar()funktsioonis määratletud väärtuse, st x = 25. Seda seetõttu, et oleme kasutanud globalmärksõna x-s bar()funktsiooni globaalse muutuja loomiseks (kohalik ulatus).
Kui teeme bar()funktsiooni sees muudatusi, ilmnevad muudatused väljaspool kohalikku ulatust, st foo().








