Ključna beseda Python (s primeri)

V tem članku boste izvedeli več o globalni ključni besedi, globalni spremenljivki in kdaj uporabljati globalne ključne besede.

Pred branjem tega članka se prepričajte, da imate nekaj osnov o globalnih, lokalnih in nelokalnih spremenljivkah Python.

Kaj je globalna ključna beseda

V Pythonu vam globalključna beseda omogoča spreminjanje spremenljivke zunaj trenutnega obsega. Uporablja se za ustvarjanje globalne spremenljivke in spreminjanje spremenljivke v lokalnem kontekstu.

Pravila globalne ključne besede

Osnovna pravila za globalključne besede v Pythonu so:

  • Ko v funkciji ustvarimo spremenljivko, je ta privzeto lokalna.
  • Ko spremenljivko definiramo zunaj funkcije, je privzeto globalna. Ni vam treba uporabljati globalključne besede.
  • Ključno globalbesedo uporabljamo za branje in zapisovanje globalne spremenljivke znotraj funkcije.
  • Uporaba globalključne besede zunaj funkcije nima učinka.

Uporaba globalne ključne besede

Vzemimo primer.

Primer 1: Dostop do globalne spremenljivke od znotraj funkcije

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

Ko zaženemo zgornji program, bo rezultat:

 1.

Vendar imamo morda nekaj scenarijev, ko moramo spremeniti globalno spremenljivko znotraj funkcije.

Primer 2: Spreminjanje globalne spremenljivke znotraj funkcije

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

Ko zaženemo zgornji program, izhod pokaže napako:

 UnboundLocalError: sklic na lokalno spremenljivko 'c' pred dodelitvijo

To je zato, ker lahko dostopamo samo do globalne spremenljivke, vendar je ne moremo spreminjati znotraj funkcije.

Rešitev za to je uporaba globalključne besede.

Primer 3: Spreminjanje globalne spremenljivke iz funkcije znotraj funkcije global

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

Ko zaženemo zgornji program, bo rezultat:

 Znotraj dodaj (): 2 V glavnem: 2

V zgornjem programu definiramo c kot globalno ključno besedo znotraj add()funkcije.

Nato spremenljivko c prirastimo za 1, tj c = c + 2. Po tem pokličemo add()funkcijo. Na koncu natisnemo še globalno spremenljivko c.

Kot lahko vidimo, sprememba se je zgodila tudi na globalne spremenljivke izven funkcije c = 2.

Globalne spremenljivke v modulih Python

V Pythonu ustvarimo en modul config.pyza shranjevanje globalnih spremenljivk in izmenjavo informacij med moduli Python znotraj istega programa.

Tukaj je opisano, kako lahko delimo globalne spremenljivke med moduli python.

Primer 4: Skupna raba spremenljivke med moduli Python

Ustvarite config.pydatoteko za shranjevanje globalnih spremenljivk

 a = 0 b = "empty"

Ustvarite update.pydatoteko za spreminjanje globalnih spremenljivk

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

Ustvarite main.pydatoteko, da preizkusite spremembe vrednosti

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

Ko zaženemo main.pydatoteko, bo rezultat

 10 abeceda

V zgoraj, smo ustvarili tri datoteke: config.py, update.py, in main.py.

Modul config.pyshranjuje globalni spremenljivki a in b. V update.pydatoteko uvozimo config.pymodul in spremenimo vrednosti a in b. Podobno v main.pydatoteko uvozimo oba config.pyin update.pymodule. Na koncu natisnemo in preizkusimo vrednosti globalnih spremenljivk, ne glede na to, ali so spremenjene ali ne.

Globalno v ugnezdenih funkcijah

Tukaj je opisano, kako lahko v ugnezdeni funkciji uporabite globalno spremenljivko.

Primer 5: Uporaba globalne spremenljivke v ugnezdeni funkciji

 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)

Rezultat je:

 Pred klicem: 20 Klicanje zdaj Po klicu: 20 x v glavnem: 25

V zgornjem programu smo znotraj ugnezdene funkcije razglasili globalno spremenljivko bar(). Znotraj foo()funkcije x nima učinka globalne ključne besede.

Pred klicem in po bar()njem spremenljivka x zavzame vrednost lokalne spremenljivke, tj x = 20. Zunaj foo()funkcije bo spremenljivka x dobila vrednost, določeno v bar()funkciji, tj x = 25. To je zato, ker smo uporabili globalključno besedo v x za ustvarjanje globalne spremenljivke znotraj bar()funkcije (lokalni obseg).

Če naredimo kakršne koli spremembe znotraj bar()funkcije, se spremembe pojavijo zunaj lokalnega obsega, tj foo().

Zanimive Članki...