Pythonin globaali avainsana (esimerkkien kanssa)

Tässä artikkelissa opit globaalista avainsanasta, globaalista muuttujasta ja siitä, milloin globaaleja avainsanoja käytetään.

Ennen kuin luet tämän artikkelin, varmista, että sinulla on joitain perusasioita Pythonin globaaleista, paikallisista ja ei-paikallisista muuttujista.

Mikä on yleinen avainsana

Pythonissa globalavainsanan avulla voit muokata muuttujaa nykyisen laajuuden ulkopuolella. Sitä käytetään luomaan globaali muuttuja ja tekemään muutoksia muuttujaan paikallisesti.

Yleisen avainsanan säännöt

globalPythonin avainsanan perussäännöt ovat:

  • Kun luot funktion sisällä muuttujan, se on oletusarvoisesti paikallinen.
  • Kun määritämme muuttujan funktion ulkopuolella, se on oletusarvoisesti globaali. Sinun ei tarvitse käyttää globalavainsanaa.
  • Käytämme globalavainsanaa globaalin muuttujan lukemiseen ja kirjoittamiseen funktion sisällä.
  • Käyttö globalavainsanan ulkopuolella toiminto ei vaikuta.

Yleisen avainsanan käyttö

Otetaan esimerkki.

Esimerkki 1: Pääsy globaaliin muuttujaan toiminnon sisältä

 c = 1 # global variable def add(): print(c) add()

Kun suoritamme yllä olevan ohjelman, tulos on:

 1

Meillä voi kuitenkin olla joitain skenaarioita, joissa meidän on muokattava globaalia muuttujaa toiminnon sisältä.

Esimerkki 2: Globaalin muuttujan muokkaaminen toiminnon sisältä

 c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()

Kun suoritamme yllä olevan ohjelman, tulos näyttää virheen:

 UnboundLocalError: paikallinen muuttuja 'c' viitattu ennen tehtävää

Tämä johtuu siitä, että voimme käyttää vain globaalia muuttujaa, mutta emme voi muokata sitä toiminnon sisältä.

Ratkaisu tähän on käyttää globalavainsanaa.

Esimerkki 3: Globaalin muuttujan muuttaminen toiminnon sisältä käyttämällä globaalia

 c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)

Kun suoritamme yllä olevan ohjelman, tulos on:

 Sisällä lisää (): 2 Pääasiassa: 2

Edellä olevassa ohjelmassa määritellään c globaaliksi avainsanaksi add()funktion sisällä .

Sitten kasvatamme muuttujaa c 1eli c = c + 2. Sen jälkeen kutsumme add()funktiota. Lopuksi tulostamme globaali muuttuja c.

Kuten voimme nähdä, muutos tapahtui myös funktion ulkopuolisessa globaalissa muuttujassa c = 2.

Python-moduulien globaalit muuttujat

Pythonissa luomme yhden moduulin config.pyglobaalien muuttujien pitämiseen ja tietojen jakamiseen Python-moduulien välillä samassa ohjelmassa.

Näin voimme jakaa globaaleja muuttujia python-moduulien välillä.

Esimerkki 4: Jaa globaali muuttuja Python-moduulien välillä

Luo config.pytiedosto globaalien muuttujien tallentamiseksi

 a = 0 b = "empty"

Luo update.pytiedosto muuttaaksesi yleisiä muuttujia

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

Luo main.pytiedosto testataksesi arvon muutoksia

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

Kun suoritamme main.pytiedoston, tulos on

 10 aakkosia

Yllä olemme luoneet kolme tiedostoa: config.py, update.pyja main.py.

Moduuli config.pytallentaa globaalit muuttujat a ja b. Tuodaan update.pytiedostoon config.pymoduuli ja muokataan a: n ja b: n arvoja. Samoin main.pytuomme tiedostoon molemmat config.pyja update.pymoduulin. Lopuksi tulostamme ja testaamme globaalien muuttujien arvot riippumatta siitä, muuttuvatko ne vai eivät.

Globaali sisäkkäisissä toiminnoissa

Näin voit käyttää globaalia muuttujaa sisäkkäisessä toiminnossa.

Esimerkki 5: Globaalin muuttujan käyttö sisäkkäisessä toiminnossa

 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)

Tuotos on:

 Ennen soittopalkkiin soittamista: 20 Soittopalkki nyt Soittopalkin jälkeen: 20 x pääosassa: 25

Edellä olevassa ohjelmassa ilmoitimme globaalin muuttujan sisäkkäisen funktion sisällä bar(). foo()Toiminnon sisällä x: llä ei ole vaikutusta yleiseen avainsanaan.

Ennen kutsua ja kutsun bar()jälkeen muuttuja x ottaa paikallisen muuttujan arvon eli x = 20. foo()Funktion ulkopuolella muuttuja x saa bar()funktiossa määritetyn arvon eli x = 25. Tämä johtuu siitä, että olemme käyttäneet globalavainsanaa x: ssä luomaan globaalin muuttujan bar()funktion sisälle (paikallinen laajuus).

Jos teemme muutoksia bar()funktion sisällä , muutokset näkyvät paikallisen laajuuden ulkopuolella, ts foo().

Mielenkiintoisia artikkeleita...