Python globális kulcsszó (példákkal)

Ebben a cikkben megismerheti a globális kulcsszót, a globális változót és a globális kulcsszavak használatának idejét.

A cikk elolvasása előtt győződjön meg arról, hogy rendelkezik a Python globális, helyi és nem lokális változók alapjaival.

Mi a globális kulcsszó

A Pythonban a globalkulcsszó lehetővé teszi a változó módosítását az aktuális hatókörön kívül. Globális változó létrehozására és a változó helyi kontextusban történő megváltoztatására szolgál.

A globális kulcsszó szabályai

A globalPython kulcsszavának alapvető szabályai a következők:

  • Amikor egy függvényen belül létrehozunk egy változót, az alapértelmezés szerint lokális.
  • Ha egy függvényen kívüli változót definiálunk, az alapértelmezés szerint globális. Nem kell globalkulcsszót használni .
  • Az általunk használt globalkulcsszó írni és olvasni egy globális változót függvényen belül.
  • A globalkulcsszó függvényen kívüli használata nincs hatással.

Globális kulcsszó használata

Vegyünk egy példát.

1. példa: A függvény belsejéből származó globális változó elérése

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

A fenti program futtatásakor a kimenet a következő lesz:

 1

Vannak azonban olyan forgatókönyveink, amikor a globális változót egy függvényen belül kell módosítanunk.

2. példa: A globális változó módosítása a függvény belsejéből

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

A fenti program futtatásakor a kimenet hibát mutat:

 UnboundLocalError: a „c” helyi változó hivatkozva a hozzárendelés előtt

Ennek oka az, hogy csak a globális változóhoz férhetünk hozzá, de a függvényen belül nem módosíthatjuk.

Erre megoldás a globalkulcsszó használata .

3. példa: A globális változó megváltoztatása egy függvény belsejéből a global használatával

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

A fenti program futtatásakor a kimenet a következő lesz:

 Belső hozzáadás (): 2 Fő: 2

A fenti programban c-t definiáljuk globális kulcsszóként a add()függvényen belül .

Ezután növeljük a c változót 1, azaz c = c + 2. Ezt követően meghívjuk a add()függvényt. Végül kinyomtatjuk a c globális változót.

Mint láthatjuk, a függvényen kívüli globális változón is változás történt c = 2.

Globális változók a Python modulokon keresztül

A Pythonban egyetlen modult hozunk létre a config.pyglobális változók tárolására és az információk megosztására a Python modulok között ugyanazon programon belül.

Így oszthatjuk meg a globális változókat a python modulok között.

4. példa: Egy globális változó megosztása a Python modulokon keresztül

Hozzon létre egy config.pyfájlt a globális változók tárolásához

 a = 0 b = "empty"

Hozzon létre egy update.pyfájlt a globális változók módosításához

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

Hozzon létre egy main.pyfájlt az érték változásainak teszteléséhez

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

Amikor lefuttatjuk a main.pyfájlt, a kimenet az lesz

 10 ábécé

A fenti, hoztunk létre három fájlt: config.py, update.pyés main.py.

A modul config.pyaz a és b globális változóit tárolja. A update.pyfájlban importáljuk a config.pymodult, és módosítjuk a és b értékeit. Hasonlóképpen, a main.pyfájl, mi import egyaránt config.pyés update.pymodult. Végül kinyomtatjuk és teszteljük a globális változók értékeit, függetlenül attól, hogy változnak-e vagy sem.

Globális beágyazott funkciókban

Így használhatja a globális változót a beágyazott függvényben.

5. példa: Globális változó használata beágyazott függvényben

 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)

A kimenet:

 Mielőtt felhívná a sávot: 20 Hívási sáv most A sáv hívása után: 20 x fő: 25

A fenti programban globális változót deklaráltunk a beágyazott függvényen belül bar(). Az foo()x függvényen belül nincs hatással a globális kulcsszóra.

Hívás előtt és után bar()az x változó a helyi változó, azaz a változó értékét veszi fel x = 20. A foo()függvényen kívül az x változó a bar()függvényben meghatározott értéket veszi fel, azaz x = 25. Ennek oka az, hogy globalaz x kulcsszót használtuk a bar()függvényen belüli globális változó létrehozásához (helyi hatókör).

Ha bármilyen változtatást hajtunk végre a bar()függvényen belül , akkor a változások a helyi hatókörön kívül jelennek meg, azaz foo().

érdekes cikkek...