Forstå omfanget av globale variabler i python

Understand Global Variables Scope Python



To typer variabler kan defineres i de fleste programmeringsspråk. Dette er globale variabler og lokale variabler. Variablene som er definert utenfor funksjonen kalles en global variabel. Denne variabelen er tilgjengelig og kan endres hvor som helst i skriptet. Variabelen som er deklarert inne i funksjonen kalles den lokale variabelen. Men hvis det samme variabelnavnet eksisterer som globale og lokale variabler, vil variabelen inne i funksjonen få prioritet og verdien til den globale variabelen blir ignorert. Omfanget av den globale variabelen i python -skriptet er vist i denne opplæringen ved hjelp av forskjellige eksempler.

Eksempel-1: Enkel bruk av en global variabel

Følgende eksempel viser enkel bruk av en global variabel inne i funksjonen og utenfor funksjonen. Her heter en global variabel tekst brukes til å tilordne en strengdata. En egendefinert funksjon navngitt printMessage () er definert for å skrive ut verdien av den globale variabelen. Verdien av tekst variabel skrives ut inne i funksjonen og utenfor funksjonen etter endring av verdien.







#!/usr/bin/env python3

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

# Definer en funksjon
defprintMessage():

# Skriv ut den globale variabelen fra funksjonen
skrive ut('Global variabel innvendig funksjon: n',tekst)

# Ring funksjonen
printMessage()

# Endre verdien av den globale variabelen
tekst= 'Lær Python -programmering'

# Skriv ut gjeldende verdi for den globale variabelen
skrive ut('Global variabel utvendig funksjon: n',tekst)

Produksjon:



Følgende utdata vises etter at skriptet er kjørt. Det trykte verdien, ' Velkommen til LinuxHint ’ som er tilordnet variabelen før du kaller funksjonen. Deretter skrev den ut verdien, 'Lær Python -programmering' etter endring av verdien på variabelen.







Eksempel 2: Bruk av global og lokal variabel med samme navn

Hvis du vil deklarere et variabelnavn inne i en funksjon som allerede er erklært som en global variabel tidligere i python og vil bruke variabelen, vil den behandle variabelen som en lokal variabel og generere en feil. Følgende skript viser feilen. Her, teksten variabel er definert som en global og lokal variabel.

#!/usr/bin/env python3

# Definer en global variabel
tekst= 'Jeg liker Python'

# Definer en funksjon
defprintMessage():
skrive ut(tekst)

tekst= 'Jeg liker PHP'

# Ring funksjonen
printMessage()

Produksjon:



Følgende utdata vises etter at skriptet er kjørt.

For å unngå situasjonen ovenfor, og hvis du vil deklarere en lokal variabel med samme navn som en global variabel, må du først tilordne den lokale variabelen inne i funksjonen. Følgende skript viser at endringene i den lokale variabelen ikke gjør noen endring i den globale variabelen. tekst variabelen skrives ut inne og utenfor funksjonen her.

#!/usr/bin/env python3

# Definer en global variabel
tekst= 'Jeg liker Python'

# Definer en funksjon
defprintMessage():
# Degine lokal verdi
tekst= 'Jeg liker PHP'
# Skriv ut den lokale variabelen, tekst
skrive ut('Verdien av' tekst 'innvendig funksjon: n',tekst)

# Ring funksjonen
printMessage()

# Skriv ut den globale variabelen, tekst
skrive ut('Verdien av' tekst 'utvendig funksjon: n',tekst)

Produksjon:

Følgende utdata vises etter at skriptet er kjørt.

Eksempel-3: Bruk av global variabel inne i funksjonen

Det forrige eksemplet viser at den globale variabelen ikke er tilgjengelig i en funksjon. Du kan bruke det globale søkeord for å få tilgang til en global variabel fra en hvilken som helst funksjon. I følgende script, cal_percentage () funksjon er definert for å beregne prosentandelen av et hvilket som helst tall der både globale og lokale variabler brukes. Her, på en er en global variabel, og perVal er en lokal variabel. global søkeord brukes her for å identifisere den globale variabelen inne i funksjonen, og verdien av den globale variabelen endres inne i funksjonen.

#!/usr/bin/env python3

# Ta en heltallsverdi
på en= int(input('Skriv inn et nummer:'))

# Definer funksjonen
defcal_procent():
# Gjenkjenne den globale variabelen ved å bruke globale søkeord
globalpå en

# Ta en heltallsverdi som prosent
perVal= int(input('Skriv inn prosentverdien:'))

# Beregn prosentverdien
resultat= flyte((om *perVal)/100)

# Skriv ut det formaterte resultatet
skrive ut(' %d prosentandel av %d = %f'%(perVal,på en,resultat))

# Endre verdien av den globale variabelen
på en= 500

# Skriv ut verdien av den globale variabelen før du ringer til funksjonen
skrive ut(' nVerdien av num = %d '%på en)

# Ring funksjonen
cal_procent()

# Skriv ut verdien av den globale variabelen etter at du har ringt funksjonen
skrive ut(' nVerdien av num = %d '%på en)

Produksjon:

Følgende utdata vises etter at skriptet er kjørt. Her beregnes og skrives 10% av 350 ut.

Eksempel-4: Bruk av globale variabler fra et annet skript

Følgende eksempel viser at hvordan den globale variabelen som er erklært i ett skript, kan brukes i et annet skript. Anta at filnavnet er global6.py som vil bruke de globale variablene som er definert i filen som heter global5.py . Tre globale variabler er deklarert i global5.py . Du må importere globalt5 å bruke variablene i et annet skript. Manuset til global6.py vil beregne lønnen til tre typer ansatte basert på inputverdier og globale variabler.

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

# Grunnleggende lønnsstruktur i et selskap
Grunnleggende= 5000
Medisinsk= 500
Transportere= 500 #!/usr/bin/env python3
# dette er global6.py -fil

# Importer de globale variablene fra global5.py
importglobalt5

# Ta medarbeidernavnet
Navn= input('Skriv inn ansattens navn:')
# Ta innleggets navn
post= input('Skriv inn innlegget:')

# Initialiser feilvariabelen
feil= Falsk

# Sjekk stillingen og sett grunnlønn basert på stilling
hvis(post.øverste() == 'ADMINISTRERENDE DIREKTØR'):
grunnleggende=globalt5.Grunnleggende+(globalt5.Grunnleggende*0,4)
elif(post.øverste() == 'SJEF'):
grunnleggende=globalt5.Grunnleggende+(globalt5.Grunnleggende*0,25)
elif(post.øverste() == 'REGNSKAPSFØRER'):
grunnleggende=globalt5.Grunnleggende+(globalt5.Grunnleggende*0,15)
ellers:
# Sett feilen til true hvis innleggsverdi ikke ble funnet
feil= ekte

# Skriv ut lønnen hvis feilen er flaske
hvis (feil== Falsk):
lønn=grunnleggende + global5.Medisinsk+ globalt5.Transportere
skrive ut('Lønnen til %s er %d'%(Navn,lønn))
ellers:
skrive ut('Innlegget ble ikke funnet')

Produksjon:

Følgende utdata vises etter at skriptet er kjørt. Her kjøres skriptet to ganger med et gyldig innlegg og ugyldig innlegg.

Konklusjon:

Konseptet med en global variabel i python er forklart i denne opplæringen med de forskjellige enkle eksemplene for de nye python -brukerne. Jeg håper leserne vil få riktig kunnskap om globale variabler så vel som lokale variabler etter å ha lest denne opplæringen.

Se forfatterens video: her