„Python“ pasaulinis raktinis žodis (su pavyzdžiais)

Š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“ globalraktinis ž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 globalraktinio ž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 globalraktinio žodžio.
  • Mes naudojame globalraktinį ž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 globalraktinį ž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.pykuriame 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.pyfailą, kad galėtumėte saugoti visuotinius kintamuosius

 a = 0 b = "empty"

Sukurkite update.pyfailą, kad pakeistumėte visuotinius kintamuosius

 import config config.a = 10 config.b = "alphabet"

Sukurkite main.pyfailą, kad patikrintumėte vertės pokyčius

 import config import update print(config.a) print(config.b)

Kai paleisime main.pyfailą, išvestis bus

 10 abėcėlės

Pirmiau, mes sukūrėme tris failus: config.py, update.pyir main.py.

Modulis config.pysaugo visuotinius a ir b kintamuosius. Į update.pyfailą, mes importuojame config.pymodulį ir keisti A ir B vertybes. Panašiai į main.pyfailą importuojame config.pyir update.pymodulį. 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 globalraktinį ž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().

Įdomios straipsniai...