Python globalt nyckelord (med exempel)

I den här artikeln lär du dig om det globala nyckelordet, den globala variabeln och när du ska använda globala sökord.

Innan du läser den här artikeln, se till att du har några grunder för Python Global, Local och Nonlocal Variables.

Vad är det globala nyckelordet

I Python globallåter nyckelordet du ändra variabeln utanför det aktuella omfånget. Den används för att skapa en global variabel och göra ändringar i variabeln i ett lokalt sammanhang.

Regler för globala nyckelord

De grundläggande reglerna för globalnyckelord i Python är:

  • När vi skapar en variabel i en funktion är den lokal som standard.
  • När vi definierar en variabel utanför en funktion är den global som standard. Du behöver inte använda globalnyckelord.
  • Vi använder globalnyckelord för att läsa och skriva en global variabel inuti en funktion.
  • Användning av globalnyckelord utanför en funktion har ingen effekt.

Användning av globala nyckelord

Låt oss ta ett exempel.

Exempel 1: Åtkomst till global variabel från en funktion

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

När vi kör ovanstående program blir resultatet:

 1

Vi kan dock ha några scenarier där vi behöver ändra den globala variabeln inifrån en funktion.

Exempel 2: Ändra global variabel inifrån funktionen

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

När vi kör programmet ovan visar resultatet ett fel:

 UnboundLocalError: lokal variabel 'c' som refereras före tilldelning

Detta beror på att vi bara kan komma åt den globala variabeln men inte kan ändra den inifrån funktionen.

Lösningen för detta är att använda globalnyckelordet.

Exempel 3: Ändra global variabel från en funktion med 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 kör ovanstående program blir resultatet:

 Insida add (): 2 I huvudsak: 2

I ovanstående program definierar vi c som ett globalt nyckelord inuti add()funktionen.

Sedan öka vi variabeln c med 1, det vill säga c = c + 2. Efter det kallar vi add()funktionen. Slutligen skriver vi ut den globala variabeln c.

Som vi kan se inträffade också förändringar på den globala variabeln utanför funktionen c = 2.

Globala variabler över Python-moduler

I Python skapar vi en enda modul för config.pyatt hålla globala variabler och dela information över Python-moduler inom samma program.

Här är hur vi kan dela globala variabler över pythonmodulerna.

Exempel 4: Dela en global variabel över Python-moduler

Skapa en config.pyfil för att lagra globala variabler

 a = 0 b = "empty"

Skapa en update.pyfil för att ändra globala variabler

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

Skapa en main.pyfil för att testa värdeförändringar

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

När vi kör main.pyfilen blir resultatet

 10 alfabetet

I ovanstående har vi skapat tre filer: config.py, update.pyoch main.py.

Modulen config.pylagrar globala variabler av a och b. I update.pyfilen importerar vi config.pymodulen och ändrar värdena för a och b. På samma sätt main.pyimporterar vi båda config.pyoch update.pymodulen i filen . Slutligen skriver vi ut och testar värdena för globala variabler om de ändras eller inte.

Globalt i kapslade funktioner

Så här kan du använda en global variabel i kapslad funktion.

Exempel 5: Använda en global variabel i kapslad funktion

 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)

Utgången är:

 Innan samtalsfält: 20 Anropsfält nu Efter anropsfält: 20 x i huvudsak: 25

I ovanstående program förklarade vi en global variabel i den kapslade funktionen bar(). Inuti- foo()funktionen har x ingen effekt av det globala nyckelordet.

Före och efter ringer bar(), variabeln x tar värdet av lokala variabeln, dvs x = 20. Utanför foo()funktionen kommer variabeln x tar värde definieras i bar()funktion, dvs x = 25. Detta beror på att vi har använt globalnyckelord i x för att skapa global variabel inuti bar()funktionen (lokalt omfång).

Om vi gör några ändringar inuti bar()funktionen förändringarna visas utanför den lokala omfattning, det vill säga foo().

Intressanta artiklar...