Python Global Keyword (med eksempler)

I denne artikkelen lærer du om det globale søkeordet, den globale variabelen og når du skal bruke globale søkeord.

Før du leser denne artikkelen, må du sørge for at du har noen grunnleggende om Python Global, Local og Nonlocal Variables.

Hva er det globale søkeordet

I Python globallar nøkkelord deg endre variabelen utenfor gjeldende omfang. Den brukes til å lage en global variabel og gjøre endringer i variabelen i en lokal sammenheng.

Regler for globale søkeord

De grunnleggende reglene for globalnøkkelord i Python er:

  • Når vi oppretter en variabel i en funksjon, er den lokal som standard.
  • Når vi definerer en variabel utenfor en funksjon, er den global som standard. Du trenger ikke å bruke globalnøkkelord.
  • Vi bruker globalnøkkelord for å lese og skrive en global variabel i en funksjon.
  • Bruk av globalnøkkelord utenfor en funksjon har ingen effekt.

Bruk av globale søkeord

La oss ta et eksempel.

Eksempel 1: Få tilgang til global variabel fra innsiden av en funksjon

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

Når vi kjører programmet ovenfor, vil utdataene være:

 1

Vi kan imidlertid ha noen scenarier der vi trenger å endre den globale variabelen fra en funksjon.

Eksempel 2: Endring av global variabel fra innsiden av funksjonen

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

Når vi kjører programmet ovenfor, viser utgangen en feil:

 UnboundLocalError: lokal variabel 'c' det henvises til før tildelingen

Dette er fordi vi bare har tilgang til den globale variabelen, men ikke kan endre den fra funksjonen.

Løsningen for dette er å bruke globalnøkkelordet.

Eksempel 3: Endring av global variabel fra innsiden av en funksjon ved bruk av global

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

Når vi kjører programmet ovenfor, vil utdataene være:

 Inside add (): 2 I hovedsak: 2

I programmet ovenfor definerer vi c som et globalt nøkkelord i add()funksjonen.

Deretter øke vi variabelen c ved 1, altså c = c + 2. Etter det kaller vi add()funksjonen. Til slutt skriver vi ut den globale variabelen c.

Som vi kan se, skjedde endring også på den globale variabelen utenfor funksjonen c = 2,.

Globale variabler på tvers av Python-moduler

I Python lager vi en enkelt modul for config.pyå holde globale variabler og dele informasjon på tvers av Python-moduler i samme program.

Slik kan vi dele globale variabler på tvers av python-modulene.

Eksempel 4: Del en global variabel på tvers av Python-moduler

Opprett en config.pyfil for å lagre globale variabler

 a = 0 b = "empty"

Opprett en update.pyfil for å endre globale variabler

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

Opprett en main.pyfil for å teste endringer i verdi

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

Når vi kjører main.pyfilen, vil utdataene være

 10 alfabetet

I ovenfor, har vi opprettet tre filer: config.py, update.pyog main.py.

Modulen config.pylagrer globale variabler av a og b. I update.pyfilen importerer vi config.pymodulen og endrer verdiene til a og b. På samme måte main.pyimporterer vi både config.pyog update.pymodul i filen . Til slutt skriver vi ut og tester verdiene til globale variabler om de endres eller ikke.

Global i nestede funksjoner

Slik kan du bruke en global variabel i nestet funksjon.

Eksempel 5: Bruke en global variabel i nestet funksjon

 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)

Utgangen er:

 Før du ringer bar: 20 Ringer nå Etter ringer: 20 x i hovedsaken: 25

I programmet ovenfor erklærte vi en global variabel i den nestede funksjonen bar(). Innvendig foo()funksjon har x ingen effekt av det globale søkeordet.

Før og etter ringer bar(), tar variabelen x verdien av lokal variabel ie x = 20. Utenfor foo()funksjonen, vil den variable x ta verdien definert i bar()funksjon ie x = 25. Dette er fordi vi har brukt globalnøkkelord i x for å lage global variabel inne i bar()funksjonen (lokalt omfang).

Hvis vi gjør noen endringer inne i bar()funksjon, vil endringene vises utenfor det lokale omfang, dvs foo().

Interessante artikler...