Förstå globala variabler omfattning i python

Understand Global Variables Scope Python



Två typer av variabler kan definieras i de flesta programmeringsspråk. Dessa är globala variabler och lokala variabler. De variabler som definieras utanför funktionen kallas en global variabel. Denna variabel är tillgänglig och kan ändras var som helst i skriptet. Variabeln som deklareras inuti funktionen kallas den lokala variabeln. Men om samma variabelnamn existerar som globala och lokala variabler får variabeln inuti funktionen prioritet och värdet på den globala variabeln ignoreras. Omfattningen av den globala variabeln i python -skriptet visas i den här självstudien med hjälp av olika exempel.

Exempel 1: Enkel användning av en global variabel

Följande exempel visar den enkla användningen av en global variabel inom funktionen och utanför funktionen. Här heter en global variabel text används för att tilldela en strängdata. En anpassad funktion som heter printMessage () definieras för att skriva ut värdet för den globala variabeln. Värdet på text variabel skrivs ut inom funktionen och utanför funktionen efter att värdet har ändrats.







#!/usr/bin/env python3

# Definiera en global variabel
text= 'Välkommen till LinuxHint'

# Definiera en funktion
defprintMessage():

# Skriv ut den globala variabeln från funktionen
skriva ut('Global variabel inuti funktion: n',text)

# Ring funktionen
printMessage()

# Ändra värdet på den globala variabeln
text= 'Lär dig Python -programmering'

# Skriv ut det aktuella värdet för den globala variabeln
skriva ut('Global variabel utanför funktion: n',text)

Produktion:



Följande utdata visas efter att manuset har körts. Det skrev ut värdet ' Välkommen till LinuxHint ’ som tilldelas variabeln innan funktionen anropas. Därefter skrev det ut värdet, 'Lär dig Python -programmering' efter att ha ändrat värdet på variabeln.







Exempel-2: Användning av global och lokal variabel med samma namn

Om du vill deklarera ett variabelnamn i en funktion som redan har deklarerats som en global variabel tidigare i python och vill använda variabeln, kommer den att behandla variabeln som en lokal variabel och generera ett fel. Följande skript visar felet. Här, texten variabel definieras som en global och lokal variabel.

#!/usr/bin/env python3

# Definiera en global variabel
text= 'Jag gillar Python'

# Definiera en funktion
defprintMessage():
skriva ut(text)

text= 'Jag gillar PHP'

# Ring funktionen
printMessage()

Produktion:



Följande utdata visas efter att manuset har körts.

För att undvika ovanstående situation och om du vill deklarera en lokal variabel med samma namn som en global variabel måste du tilldela den lokala variabeln inuti funktionen först. Följande skript visar att ändringarna i den lokala variabeln inte gör några ändringar i den globala variabeln. text variabel skrivs ut inuti och utanför funktionen här.

#!/usr/bin/env python3

# Definiera en global variabel
text= 'Jag gillar Python'

# Definiera en funktion
defprintMessage():
# Degine lokalt värde
text= 'Jag gillar PHP'
# Skriv ut den lokala variabeln, text
skriva ut('Värdet av' text 'inre funktion: n',text)

# Ring funktionen
printMessage()

# Skriv ut den globala variabeln, text
skriva ut('Värdet av' text 'utanför funktionen: n',text)

Produktion:

Följande utdata visas efter att manuset har körts.

Exempel-3: Användning av global variabel inuti funktionen

Det föregående exemplet visar att den globala variabeln inte är tillgänglig i en funktion. Du kan använda den globala nyckelord för att komma åt en global variabel från valfri funktion. I följande skript, cal_percentage () funktion definieras för att beräkna procentandelen av valfritt tal där både globala och lokala variabler används. Här, på ett är en global variabel, och perVal är en lokal variabel. global nyckelordet används här för att identifiera den globala variabeln inuti funktionen och värdet på den globala variabeln ändras inuti funktionen.

#!/usr/bin/env python3

# Ta ett heltal
på ett= int(inmatning('Ange ett nummer:'))

# Definiera funktionen
defcal_procent():
# Känner igen den globala variabeln med hjälp av globala sökord
globalpå ett

# Ta ett heltal som procent
perVal= int(inmatning('Ange procentvärdet:'))

# Beräkna procentvärdet
resultat= flyta((om *perVal)/100)

# Skriv ut det formaterade resultatet
skriva ut(' %d procent av %d = %f'%(perVal,på ett,resultat))

# Ändra värdet på global variabel
på ett= 500

# Skriv ut värdet på global variabel innan du ringer till funktionen
skriva ut(' nVärdet på num = %d '%på ett)

# Ring funktionen
cal_procent()

# Skriv ut värdet på global variabel efter att du har ringt till funktionen
skriva ut(' nVärdet på num = %d '%på ett)

Produktion:

Följande utdata visas efter att manuset har körts. Här beräknas och skrivs 10% av 350 ut.

Exempel-4: Användning av globala variabler från ett annat skript

Följande exempel visar hur den globala variabel som deklareras i ett skript kan användas i ett annat skript. Antag att filnamnet är global6.py som kommer att använda de globala variablerna som definieras i filen som heter global5.py . Tre globala variabler deklareras i global5.py . Du måste importera globalt5 att använda variablerna i ett annat skript. Manuset till global6.py kommer att beräkna lönen för tre typer av anställda baserat på ingångsvärden och globala variabler.

#!/usr/bin/env python3
# detta är global5.py -fil

# Grundläggande lönestruktur för ett företag
Grundläggande= 5000
Medicinsk= 500
Transport= 500 #!/usr/bin/env python3
# detta är global6.py -fil

# Importera de globala variablerna från global5.py
importeraglobalt 5

# Ta medarbetarens namn
namn= inmatning('Ange medarbetarens namn:')
# Ta inläggets namn
posta= inmatning('Skriv in inlägget:')

# Initiera felvariabeln
fel= Falsk

# Kontrollera tjänsten och ange grundlön baserat på tjänst
om(posta.övre() == 'VD'):
grundläggande=globalt5.Grundläggande+(globalt5.Grundläggande*0,4)
elif(posta.övre() == 'CHEF'):
grundläggande=globalt5.Grundläggande+(globalt5.Grundläggande*0,25)
elif(posta.övre() == 'REVISOR'):
grundläggande=globalt5.Grundläggande+(globalt5.Grundläggande*0,15)
annan:
# Ställ in felet på true om postvärdet inte hittades
fel= Sann

# Skriv ut lönen om fel är flas
om (fel== Falsk):
lön=grundläggande + global5.Medicinsk+ global5.Transport
skriva ut('Lönen för %s är %d'%(namn,lön))
annan:
skriva ut('Inlägget hittades inte')

Produktion:

Följande utdata visas efter att manuset har körts. Här körs skriptet två gånger med ett giltigt inlägg och ett ogiltigt inlägg.

Slutsats:

Konceptet med en global variabel i python förklaras i denna handledning med de olika enkla exemplen för de nya pythonanvändarna. Jag hoppas att läsarna kommer att få rätt kunskap om såväl globala variabler som lokala variabler efter att ha läst denna handledning.

Se författarens video: här