Šiame straipsnyje sužinosite apie visuotinį raktinį žodį, visuotinį kintamąjį ir kada naudoti visuotinius raktinius žodžius.
Prieš skaitydami šį straipsnį įsitikinkite, kad turite keletą „Python“ visuotinių, vietinių ir vietinių kintamųjų pagrindų.
Koks yra pasaulinis raktinis žodis
„Python“ global
raktinis žodis leidžia modifikuoti kintamąjį už dabartinės srities ribų. Jis naudojamas kuriant visuotinį kintamąjį ir keičiant kintamąjį vietiniame kontekste.
Visuotinio raktinio žodžio taisyklės
Pagrindinės global
raktinio žodžio „Python“ taisyklės yra šios:
- Kai kuriame funkcijos kintamąjį, jis pagal nutylėjimą yra vietinis.
- Kai mes apibrėžiame kintamąjį už funkcijos ribų, jis pagal nutylėjimą yra visuotinis. Jums nereikia naudoti
global
raktinio žodžio. - Mes naudojame
global
raktinį žodį skaityti ir rašyti visuotinį kintamąjį funkcijos viduje. - Naudokite
global
žodį už funkcija neturi įtakos.
Visuotinio raktinio žodžio naudojimas
Paimkime pavyzdį.
1 pavyzdys: Prieiga prie visuotinio kintamojo iš funkcijos vidaus
c = 1 # global variable def add(): print(c) add()
Kai vykdysime pirmiau nurodytą programą, išvestis bus:
1
Tačiau galime turėti keletą scenarijų, kai turime modifikuoti visuotinį kintamąjį iš funkcijos.
2 pavyzdys: visuotinio kintamojo iš funkcijos viduje modifikavimas
c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()
Kai vykdome pirmiau nurodytą programą, išvestyje rodoma klaida:
„UnboundLocalError“: vietinis kintamasis „c“, nurodytas prieš priskyrimą
Taip yra todėl, kad mes galime pasiekti tik visuotinį kintamąjį, bet negalime jo modifikuoti iš funkcijos.
Išeitis yra naudoti global
raktinį žodį.
3 pavyzdys: Visuotinio kintamojo keitimas iš funkcijos viduje naudojant globalųjį
c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)
Kai vykdysime pirmiau nurodytą programą, išvestis bus:
Viduje pridėkite (): 2 Iš esmės: 2
Pirmiau pateiktoje programoje c apibrėžiame kaip visuotinį raktinį žodį add()
funkcijos viduje .
Tada kintamąjį c padidiname 1
, ty c = c + 2
. Po to mes iškviečiame add()
funkciją. Galiausiai atspausdiname visuotinį kintamąjį c.
Kaip matome, pasikeitė ir visuotinis kintamasis, nepriklausantis funkcijai c = 2
.
Visuotiniai kintamieji visuose „Python“ moduliuose
„Python“ kuriame vieną modulį, config.py
kuriame laikomi visuotiniai kintamieji ir dalijamasi informacija tarp „Python“ modulių toje pačioje programoje.
Štai kaip mes galime dalytis visais kintamaisiais visuose python moduliuose.
4 pavyzdys: dalinkitės visuotiniu kintamuoju visame „Python“ moduliuose
Sukurkite config.py
failą, kad galėtumėte saugoti visuotinius kintamuosius
a = 0 b = "empty"
Sukurkite update.py
failą, kad pakeistumėte visuotinius kintamuosius
import config config.a = 10 config.b = "alphabet"
Sukurkite main.py
failą, kad patikrintumėte vertės pokyčius
import config import update print(config.a) print(config.b)
Kai paleisime main.py
failą, išvestis bus
10 abėcėlės
Pirmiau, mes sukūrėme tris failus: config.py
, update.py
ir main.py
.
Modulis config.py
saugo visuotinius a ir b kintamuosius. Į update.py
failą, mes importuojame config.py
modulį ir keisti A ir B vertybes. Panašiai į main.py
failą importuojame config.py
ir update.py
modulį. Galiausiai atspausdiname ir išbandome visuotinių kintamųjų reikšmes, nepaisant to, ar jos yra pakeistos, ar ne.
Visuotinės įdėtos funkcijos
Štai kaip galite naudoti visuotinį kintamąjį įdėtoje funkcijoje.
5 pavyzdys: Visuotinio kintamojo naudojimas įdėtoje funkcijoje
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)
Rezultatas yra:
Prieš skambinant į barą: 20 Skambučių baras dabar Paskambinus į barą: 20 x pagrindinis: 25
Ankstesnėje programoje mes įdėtą visuotinį kintamąjį įdėtoje funkcijoje bar()
. foo()
Funkcijos viduje x neturi visuotinio raktinio žodžio poveikio.
Prieš ir po skambučio bar()
kintamasis x ima vietinio kintamojo reikšmę, t x = 20
. Už foo()
funkcijos ribų kintamasis x ims reikšmę, apibrėžtą bar()
funkcijoje, t x = 25
. Taip yra todėl, kad mes naudojome global
raktinį žodį x, norėdami sukurti visuotinį kintamąjį bar()
funkcijos viduje (vietinė apimtis).
Jei atliksime kokius nors pakeitimus bar()
funkcijos viduje , pakeitimai pasirodys už lokalios apimties ribų, t foo()
.