Pytonorm

Förstå omfattningen av globala variabler i python

Förstå omfattningen av globala variabler i python
Två typer av variabler kan definieras i de flesta programmeringsspråk. Dessa är globala variabler och lokala variabler. Variablerna 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 lokal variabel. Men om samma variabelnamn existerar som globala och lokala variabler så får variabeln inuti funktionen prioritet och värdet på den globala variabeln ignoreras. Omfattningen av den globala variabeln i python-skriptet visas i denna handledning med hjälp av olika exempel.

Exempel 1: Enkel användning av en global variabel

Följande exempel visar enkel användning av en global variabel inuti funktionen och utanför funktionen. Här heter en global variabel text används för att tilldela en strängdata. En anpassad funktion med namnet printMessage () definieras för att skriva ut värdet på den globala variabeln. Värdet av text variabel skrivs ut i 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
def printMessage ():
# Skriv ut den globala variabeln från funktionen
skriv 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
skriv ut ("Global variabel utanför funktion: \ n", text)

Produktion:

Följande utdata visas efter körning av skriptet. Det tryckte värdet, 'Välkommen till LinuxHint ' som tilldelas variabeln innan du anropar funktionen. 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 deklareras 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
def printMessage ():
skriva ut (text)
text = "Jag gillar PHP"
# Ring funktionen
printMessage ()

Produktion:

Följande utdata visas efter körning av skriptet.

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

#!/ usr / bin / env python3
# Definiera en global variabel
text = "Jag gillar Python"
# Definiera en funktion
def printMessage ():
# Degine lokalt värde
text = "Jag gillar PHP"
# Skriv ut den lokala variabeln, text
print ("Värdet för" text "inuti funktion: \ n", text)
# Ring funktionen
printMessage ()
# Skriv ut den globala variabeln, text
print ("Värdet för" text "utanför funktionen: \ n", text)

Produktion:

Följande utdata visas efter körning av skriptet.

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 vilken funktion som helst. I följande skript, cal_percentage () funktionen definieras för att beräkna procentandelen av valfritt tal där både globala och lokala variabler används. Här, antal är en global variabel och perVal är en lokal variabel. global nyckelord används här för att identifiera den globala variabeln inuti funktionen och värdet för den globala variabeln ändras inuti funktionen.

#!/ usr / bin / env python3
# Ta ett heltal
num = int (input ("Ange ett nummer:"))
# Definiera funktionen
def cal_percentage ():
# Känn igen den globala variabeln med hjälp av globalt nyckelord
globalt antal
# Ta ett heltal som procent
perVal = int (input ("Ange procentvärdet:"))
# Beräkna procentvärdet
resultat = float ((num * perVal) / 100)
# Skriv ut det formaterade resultatet
skriva ut ("% d procent av% d =% f"% (perVal, antal, resultat))
# Ändra värdet på global variabel
num = 500
# Skriv ut värdet på global variabel innan du anropar funktionen
skriva ut ("\ nVärdet för num =% d"% num)
# Ring funktionen
cal_percentage ()
# Skriv ut värdet på den globala variabeln efter att ha anropat funktionen
skriva ut ("\ nVärdet för num =% d"% num)

Produktion:

Följande utdata visas efter körning av skriptet. Här beräknas 10% av 350 och skrivs ut.

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

Följande exempel visar att hur den globala variabeln som deklareras i ett skript kan användas i ett annat skript. Antag att filnamnet är global6.py som använder de globala variablerna som definieras i namnet på filen global5.py. Tre globala variabler deklareras i global5.py. Du måste importera global5 för 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 globalt5.py-fil
# Grundläggande lönestruktur för ett företag
Grundläggande = 5000
Medicinsk = 500
Transport = 500 #!/ usr / bin / env python3
# detta är globalt6.py-fil
# Importera de globala variablerna från global5.py
importera global5
# Ta medarbetarnamnet
name = input ("Ange anställds namn:")
# Ta postnamnet
post = input ("Ange inlägget:")
# Initiera felvariabeln
fel = Falskt
# Kontrollera inlägget och ange grundlön baserat på inlägg
om (post.upper () == "CEO"):
grundläggande = global5.Basic + (global5.Grundläggande * 0.4)
elif (post.övre () == "MANAGER"):
grundläggande = global5.Basic + (global5.Grundläggande * 0.25)
elif (post.upper () == "ACCOUNTANT"):
grundläggande = global5.Basic + (global5.Grundläggande * 0.15)
annan:
# Ställ in fel till sant om postvärde inte hittades
error = True
# Skriv ut lönen om felet är flaskt
om (fel == Falskt):
lön = grundläggande + global5.Medicinsk + global5.Transport
tryck ("Lönen på% s är% d"% (namn, lön))
annan:
skriva ut ("Inlägget hittades inte")

Produktion:

Följande utdata visas efter körning av skriptet. Här körs manuset två gånger med ett giltigt inlägg och 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 globala variabler såväl som lokala variabler efter att ha läst denna handledning.

Se författarens video: här

Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...
Bästa Gamepad Mapping Apps för Linux
Om du gillar att spela spel på Linux med en gamepad istället för ett typiskt tangentbord och musinmatningssystem, finns det några användbara appar för...
Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...