Forstå omfanget af globale variabler i python

Understand Global Variables Scope Python



To typer variabler kan defineres i de fleste programmeringssprog. Disse er globale variabler og lokale variabler. De variabler, der er defineret uden for funktionen, kaldes en global variabel. Denne variabel er tilgængelig og kan ændres overalt i scriptet. Variablen, der erklæres inde i funktionen, kaldes den lokale variabel. Men hvis det samme variabelnavn eksisterer som globale og lokale variabler, får variablen inde i funktionen prioritet, og værdien af ​​den globale variabel ignoreres. Omfanget af den globale variabel i python -scriptet er vist i denne vejledning ved hjælp af forskellige eksempler.

Eksempel-1: Enkel brug af en global variabel

Det følgende eksempel viser den enkle brug af en global variabel inde i funktionen og uden for funktionen. Her er en global variabel navngivet tekst bruges til at tildele en strengdata. En brugerdefineret funktion navngivet printMessage () er defineret til at udskrive værdien af ​​den globale variabel. Værdien af tekst variabel udskrives inde i funktionen og uden for funktionen efter ændring af værdien.







#!/usr/bin/env python3

# Definer en global variabel
tekst= 'Velkommen til LinuxHint'

# Definer en funktion
defprintMessage():

# Udskriv den globale variabel fra funktionen
Print('Global variabel indvendig funktion: n',tekst)

# Ring til funktionen
printMessage()

# Skift værdien af ​​den globale variabel
tekst= 'Lær Python -programmering'

# Udskriv den aktuelle værdi af den globale variabel
Print('Global variabel udvendig funktion: n',tekst)

Produktion:



Følgende output vises efter at scriptet er kørt. Det trykte værdien, ' Velkommen til LinuxHint ’ der tildeles variablen, før funktionen kaldes. Derefter udskrives værdien, 'Lær Python -programmering' efter ændring af værdien af ​​variablen.







Eksempel-2: Brug af global og lokal variabel med samme navn

Hvis du vil erklære et variabelnavn inde i en funktion, der allerede er erklæret som en global variabel før i python og vil bruge variablen, vil den behandle variablen som en lokal variabel og generere en fejl. Følgende script viser fejlen. Her, teksten variabel er defineret som en global og lokal variabel.

#!/usr/bin/env python3

# Definer en global variabel
tekst= 'Jeg kan godt lide Python'

# Definer en funktion
defprintMessage():
Print(tekst)

tekst= 'Jeg kan godt lide PHP'

# Ring til funktionen
printMessage()

Produktion:



Følgende output vises efter at scriptet er kørt.

For at undgå ovenstående situation, og hvis du vil erklære en lokal variabel med samme navn som en global variabel, skal du først tildele den lokale variabel inde i funktionen. Det følgende script viser, at ændringerne i den lokale variabel ikke foretager nogen ændringer i den globale variabel. tekst variabel udskrives inden for og uden for funktionen her.

#!/usr/bin/env python3

# Definer en global variabel
tekst= 'Jeg kan godt lide Python'

# Definer en funktion
defprintMessage():
# Degine lokal værdi
tekst= 'Jeg kan godt lide PHP'
# Udskriv den lokale variabel, tekst
Print('Værdien af' tekst 'indvendig funktion: n',tekst)

# Ring til funktionen
printMessage()

# Udskriv den globale variabel, tekst
Print('Værdien af' tekst 'udvendig funktion: n',tekst)

Produktion:

Følgende output vises efter at scriptet er kørt.

Eksempel-3: Brug af global variabel inde i funktionen

Det foregående eksempel viser, at den globale variabel ikke er tilgængelig inde i en funktion. Du kan bruge det globale nøgleord for at få adgang til en global variabel fra enhver funktion. I det følgende script, cal_percentage () funktion er defineret til at beregne procentdelen af ​​et hvilket som helst tal, hvor både globale og lokale variabler bruges. Her, på en er en global variabel, og pr. værdi er en lokal variabel. global nøgleord bruges her til at identificere den globale variabel inde i funktionen, og værdien af ​​den globale variabel ændres inde i funktionen.

#!/usr/bin/env python3

# Tag en heltalværdi
på en= int(input('Indtast et nummer:'))

# Definer funktionen
defcal_procent():
# Genkend den globale variabel ved hjælp af globalt søgeord
globalpå en

# Tag en heltalværdi i procent
pr. værdi= int(input('Indtast procentværdien:'))

# Beregn procentværdien
resultat= flyde((om *perVal)/100)

# Udskriv det formaterede resultat
Print(' %d procentdel af %d = %f'%(pr. værdi,på en,resultat))

# Skift værdien af ​​den globale variabel
på en= 500

# Udskriv værdien af ​​den globale variabel, før du kalder funktionen
Print(' nVærdien af ​​num = %d '%på en)

# Ring til funktionen
cal_procent()

# Udskriv værdien af ​​den globale variabel efter at have kaldt funktionen
Print(' nVærdien af ​​num = %d '%på en)

Produktion:

Følgende output vises efter at scriptet er kørt. Her beregnes og udskrives 10% af 350.

Eksempel-4: Brug af globale variabler fra et andet script

Følgende eksempel viser, hvordan den globale variabel, der er angivet i et script, kan bruges i et andet script. Antag, at filnavnet er global6.py der vil bruge de globale variabler, der er defineret i den navngivne fil global5.py . Tre globale variabler er angivet i global5.py . Du skal importere globalt 5 at bruge variablerne i et andet script. Scriptet af global6.py vil beregne lønnen for tre typer medarbejdere baseret på inputværdier og globale variabler.

#!/usr/bin/env python3
# dette er global5.py -fil

# Grundlæggende lønstruktur i en virksomhed
Grundlæggende= 5000
Medicinsk= 500
Transportere= 500 #!/usr/bin/env python3
# dette er global6.py -fil

# Importer de globale variabler fra global5.py
importereglobalt 5

# Tag medarbejdernavnet
navn= input('Indtast medarbejderens navn:')
# Tag postens navn
stolpe= input('Indtast posten:')

# Initialiser fejlvariablen
fejl= Falsk

# Tjek stillingen, og sæt grundløn baseret på stillingen
hvis(stolpe.øverst() == 'DIREKTØR'):
grundlæggende=globalt 5.Grundlæggende+(globalt 5.Grundlæggende*0,4)
elif(stolpe.øverst() == 'MANAGER'):
grundlæggende=globalt 5.Grundlæggende+(globalt 5.Grundlæggende*0,25)
elif(stolpe.øverst() == 'REVISOR'):
grundlæggende=globalt 5.Grundlæggende+(globalt 5.Grundlæggende*0,15)
andet:
# Indstil fejl til sand, hvis postværdi ikke blev fundet
fejl= Sand

# Udskriv lønnen, hvis fejlen er flase
hvis (fejl== Falsk):
løn=grundlæggende + global5.Medicinsk+ globalt 5.Transportere
Print('Lønnen på %s er %d'%(navn,løn))
andet:
Print('Opslag findes ikke')

Produktion:

Følgende output vises efter at scriptet er kørt. Her køres scriptet to gange med et gyldigt indlæg og ugyldigt indlæg.

Konklusion:

Konceptet med en global variabel i python forklares i denne vejledning med de forskellige enkle eksempler til de nye python -brugere. Jeg håber, at læserne får den korrekte viden om globale variabler såvel som lokale variabler efter at have læst denne vejledning.

Se forfatterens video: her