Come utilizzare le variabili globali in Python (parola chiave globale)
Scopri come funzionano le variabili globali in Python. Comprendere l'ambito delle variabili, gli spazi dei nomi locali e globali e come modificare le variabili utilizzando la parola chiave globale.
Panoramica
Comprendere gli spazi dei nomi e l'ambito delle variabili è fondamentale per scrivere software privo di bug in Python. L'ambito determina quali parti del programma possono accedere o modificare una variabile. Una variabile dichiarata all'esterno di tutte le funzioni esiste nell'ambito globale e può essere letta ovunque nel modulo.
Tuttavia, sorge un problema quando una funzione tenta di modificare (riassegnare) una variabile globale. Per impostazione predefinita, quando Python vede un'assegnazione all'interno di una funzione, presuppone che la variabile sia locale alla funzione. Se provi a modificare una variabile globale senza dichiararla come globale, Python creerà una variabile locale con lo stesso nome, lasciando la variabile globale invariata (o solleverà un `UnboundLocalError`).
Per dire esplicitamente a Python che desideri modificare una variabile nello spazio dei nomi globale anziché crearne uno locale, devi dichiararlo utilizzando la parola chiave "global" all'interno della funzione. Sebbene l'uso delle variabili globali sia talvolta necessario, è generalmente considerato una cattiva pratica nella progettazione di software di grandi dimensioni perché rende difficile il monitoraggio e il debug dello stato.
Codice e output di esecuzione
Questo script dimostra la lettura delle variabili globali, la trappola dello shadowing delle variabili e la modifica delle variabili globali utilizzando la parola chiave global.
counter = 10 # Global variable
def read_counter():
# Reading a global variable works out-of-the-box
print("Reading global counter:", counter)
def shadow_counter():
# Attempting to assign without 'global' creates a local variable
counter = 20 # Shadowing
print("Inside shadow function:", counter)
def modify_counter():
global counter # Declaring we are writing to global scope
counter = 50
print("Inside modify function:", counter)
read_counter()
shadow_counter()
print("Counter after shadow function:", counter) # Remains 10
modify_counter()
print("Counter after modify function:", counter) # Now 50Reading global counter: 10
Inside shadow function: 20
Counter after shadow function: 10
Inside modify function: 50
Counter after modify function: 50Implementazione passo dopo passo
- Dichiarare variabili a cui è necessario accedere a livello globale al di fuori dell'ambito di qualsiasi funzione.
- Legge le variabili globali all'interno di qualsiasi funzione senza aggiungere dichiarazioni speciali.
- Utilizza la parola chiave globale (ad esempio, contatore globale) all'interno delle funzioni se devi modificare il valore della variabile globale.
- Limita l'utilizzo delle variabili globali per evitare confusione nell'ambito e inquinamento dello spazio dei nomi.
Domande frequenti
Cos'è lo shadowing variabile in Python?
Lo shadowing si verifica quando una variabile dichiarata all'interno di un ambito locale (come una funzione) ha lo stesso nome di una variabile in un ambito globale esterno. La variabile locale maschera quella globale, rendendola temporaneamente inaccessibile all'interno di quell'ambito.
Qual è la differenza tra parole chiave globali e non locali?
global viene utilizzato per accedere alle variabili definite nell'ambito del modulo più esterno. nonlocal viene utilizzato all'interno di funzioni annidate per accedere alle variabili definite nell'ambito della funzione di inclusione (esterna).
Argomenti correlati
Scopri come gestire le eccezioni in Python usando try, tranne, altro e infine blocchi. Scrivi codice Python privo di errori e resistente agli arresti anomali.
Come creare una classe in PythonScopri come creare una classe in Python. Padroneggia il costruttore __init__, i metodi di istanza, la parola chiave self e l'istanziazione degli oggetti.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Spiegazione delle variabili Python e dei tipi di dati
Comprendere le variabili Python e i tipi di dati principali (stringhe, numeri interi, float, booleani). Una guida completa per principianti all'assegnazione della memoria in Python.
Foglio informativo sui metodi delle stringhe Python
Una guida di riferimento completa per la manipolazione delle stringhe Python. Padroneggia la formattazione, la ricerca, la divisione, la sostituzione e il controllo delle proprietà delle stringhe.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.