Comprendre l'abast de les variables globals a Python

Understand Global Variables Scope Python



Es poden definir dos tipus de variables en la majoria dels llenguatges de programació. Són variables globals i variables locals. Les variables que es defineixen fora de la funció s’anomenen variables globals. Aquesta variable és accessible i canviable des de qualsevol lloc de l'script. La variable que es declara dins de la funció s'anomena variable local. Però si existeix el mateix nom de variable que les variables globals i locals, la variable de la funció obtindrà la prioritat i s'ignorarà el valor de la variable global. L’abast de la variable global a l’escriptura python es mostra en aquest tutorial amb diversos exemples.

Exemple 1: Ús senzill d'una variable global

L'exemple següent mostra l'ús senzill d'una variable global dins de la funció i fora de la funció. Aquí hi ha una variable global anomenada text s'utilitza per assignar dades de cadena. Una funció personalitzada anomenada printMessage () es defineix per imprimir el valor de la variable global. El valor del fitxer text La variable s'imprimeix dins de la funció i fora de la funció després de canviar el valor.







#! / usr / bin / env python3

# Definiu una variable global
text= 'Benvingut a LinuxHint'

# Definiu una funció
defprintMessage():

# Imprimiu la variable global des de la funció
imprimir('Funció dins de la variable global: n',text)

# Truqueu a la funció
printMessage()

# Canvieu el valor de la variable global
text= 'Apreneu la programació de Python'

# Imprimiu el valor actual de la variable global
imprimir(Variable global fora de la funció: n',text)

Sortida:



La següent sortida apareixerà després d'executar l'script. Va imprimir el valor: Benvingut a LinuxHint ’ que s’assigna a la variable abans de cridar a la funció. A continuació, va imprimir el valor, 'Apreneu la programació de Python' després de canviar el valor de la variable.







Exemple-2: ús de variables locals i globals amb el mateix nom

Si voleu declarar un nom de variable dins d'una funció que ja s'ha declarat anteriorment com a variable global a python i voleu utilitzar la variable, tractarà la variable com una variable local i generarà un error. El següent script mostrarà l'error. Aquí, el text variable es defineix com una variable local i global.

#! / usr / bin / env python3

# Definiu una variable global
text= 'M'agrada Python'

# Definiu una funció
defprintMessage():
imprimir(text)

text= 'M'agrada PHP'

# Truqueu a la funció
printMessage()

Sortida:



La següent sortida apareixerà després d'executar l'script.

Per evitar la situació anterior i si voleu declarar una variable local amb el mateix nom que una variable global, primer heu d'assignar la variable local dins de la funció. El següent script mostra que els canvis a la variable local no fan cap canvi a la variable global. text aquí s’imprimeix la variable dins i fora de la funció.

#! / usr / bin / env python3

# Definiu una variable global
text= 'M'agrada Python'

# Definiu una funció
defprintMessage():
# Degineu el valor local
text= 'M'agrada PHP'
# Imprimiu la variable local, text
imprimir('El valor de' text 'dins de la funció: n',text)

# Truqueu a la funció
printMessage()

# Imprimiu la variable global, text
imprimir('El valor de' text 'fora de la funció: n',text)

Sortida:

La següent sortida apareixerà després d'executar l'script.

Exemple-3: ús de la variable global dins de la funció

L'exemple anterior mostra que la variable global no és accessible dins d'una funció. Pots fer servir el global paraula clau per accedir a una variable global des de qualsevol funció. Al següent script, cal_percentage () La funció es defineix per calcular el percentatge de qualsevol nombre en què s'utilitzen variables globals i locals. Aquí, en un és una variable global i perVal és una variable local. global aquí s'utilitza la paraula clau per identificar la variable global dins de la funció i el valor de la variable global es canvia dins de la funció.

#! / usr / bin / env python3

# Agafeu un valor enter
en un= int(entrada('Introduïu un número:'))

# Definiu la funció
defpercentatge_cal():
# Reconeixeu la variable global mitjançant una paraula clau global
globalen un

# Agafeu un valor enter com a percentatge
perVal= int(entrada('Introduïu el valor percentual:'))

# Calculeu el valor percentual
resultat= surar((si * perVal)/100)

# Imprimiu el resultat formatat
imprimir('% d percentatge de% d =% f'%(perVal,en un,resultat))

# Canvieu el valor de la variable global
en un= 500

# Imprimiu el valor de la variable global abans de cridar a la funció
imprimir(' nEl valor de num =% d '% en un)

# Truqueu a la funció
percentatge_cal()

# Imprimiu el valor de la variable global després de trucar a la funció
imprimir(' nEl valor de num =% d '% en un)

Sortida:

La següent sortida apareixerà després d'executar l'script. Aquí es calcula i s’imprimeix el 10% de 350.

Exemple-4: ús de variables globals d’un altre script

L'exemple següent mostra que la variable global declarada en un script es pot utilitzar en un altre script. Suposem que el nom del fitxer és global6.py que utilitzarà les variables globals definides al fitxer anomenat global5.py . Es declaren tres variables globals a global5.py . Cal importar global5 per utilitzar les variables en un altre script. El guió de global6.py calcularà el salari de tres tipus d’empleats en funció dels valors d’entrada i de les variables globals.

#! / usr / bin / env python3
# aquest és un fitxer global5.py

# Estructura salarial bàsica d’una empresa
Bàsic= 5000
Mèdic= 500
Transport= 500 #! / usr / bin / env python3
# aquest és un fitxer global6.py

# Importeu les variables globals de global5.py
importacióglobal5

# Agafeu el nom de l’empleat
nom= entrada('Introduïu el nom de l'empleat:')
# Agafeu el nom de la publicació
publicar= entrada('Introduïu la publicació:')

# Inicialitzeu la variable d'error
error= Fals

# Consulteu el lloc i fixeu el salari bàsic en funció del lloc
si(publicar.superior() == 'CEO'):
bàsic=global5.Bàsic+(global5.Bàsic*0.4)
elif(publicar.superior() == 'MANAGER'):
bàsic=global5.Bàsic+(global5.Bàsic*0.25)
elif(publicar.superior() == 'COMPTABLE'):
bàsic=global5.Bàsic+(global5.Bàsic*0.15)
en cas contrari:
# Defineix l'error a true si no es troba el valor de la publicació
error= És cert

# Imprimiu el salari si l'error és fluix
si (error== Fals):
sou=bàsic + global5.Mèdic+ Global5.Transport
imprimir('El salari de% s és% d'%(nom,sou))
en cas contrari:
imprimir('No s'ha trobat la publicació')

Sortida:

La següent sortida apareixerà després d'executar l'script. Aquí, l'script s'executa dues vegades amb una publicació vàlida i una publicació no vàlida.

Conclusió:

El concepte d'una variable global en python s'explica en aquest tutorial amb els diversos exemples senzills per als nous usuaris de python. Espero que els lectors obtinguin el coneixement adequat de les variables globals i les variables locals després de llegir aquest tutorial.

Mireu el vídeo de l'autor: aquí