Comment utiliser les variables globales en Python (mot-clé global)
Découvrez comment fonctionnent les variables globales en Python. Comprenez la portée des variables, les espaces de noms locaux et globaux et comment modifier les variables à l'aide du mot-clé global.
Aperçu
Comprendre les espaces de noms et la portée des variables est essentiel pour écrire un logiciel sans bug en Python. La portée détermine quelles parties de votre programme peuvent accéder ou modifier une variable. Une variable déclarée en dehors de toutes les fonctions existe dans la portée globale et peut être lue n'importe où dans le module.
Cependant, un problème survient lorsqu'une fonction tente de modifier (réaffecter) une variable globale. Par défaut, lorsque Python voit une affectation dans une fonction, il suppose que cette variable est locale à la fonction. Si vous essayez de modifier une variable globale sans la déclarer comme globale, Python créera une variable locale avec le même nom, laissant la variable globale inchangée (ou déclenchera une `UnboundLocalError`).
Pour indiquer explicitement à Python que vous souhaitez modifier une variable dans l'espace de noms global plutôt que d'en créer une locale, vous devez la déclarer en utilisant le mot-clé `global` à l'intérieur de la fonction. Bien que l'utilisation de variables globales soit parfois nécessaire, elle est généralement considérée comme une mauvaise pratique dans la conception de logiciels de grande envergure, car elle rend l'état difficile à suivre et à déboguer.
Sortie de code et d'exécution
Ce script montre la lecture des variables globales, le piège d'observation des variables et la modification des variables globales à l'aide du mot-clé 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: 50Mise en œuvre étape par étape
- Déclarez les variables auxquelles il faut accéder globalement en dehors de toute portée de fonction.
- Lisez les variables globales dans n'importe quelle fonction sans ajouter de déclarations spéciales.
- Utilisez le mot-clé global (par exemple, compteur global) dans les fonctions si vous devez modifier la valeur de la variable globale.
- Limitez l’utilisation des variables globales pour éviter toute confusion de portée et toute pollution de l’espace de noms.
Foire aux questions
Qu’est-ce que l’observation variable en Python ?
L'observation se produit lorsqu'une variable déclarée dans une portée locale (comme une fonction) porte le même nom qu'une variable dans une portée globale externe. La variable locale masque la variable globale, la rendant temporairement inaccessible à l'intérieur de cette portée.
Quelle est la différence entre les mots-clés globaux et non locaux ?
global est utilisé pour accéder aux variables définies dans la portée du module le plus externe. nonlocal est utilisé dans des fonctions imbriquées pour accéder aux variables définies dans la portée de la fonction englobante (externe).
Sujets connexes
Apprenez à gérer les exceptions en Python à l’aide des blocs try, except, else et enfin. Écrivez du code Python sans erreur et résistant aux plantages.
Comment créer une classe en PythonApprenez à créer une classe en Python. Maîtrisez le constructeur __init__, les méthodes d'instance, le mot-clé self et l'instanciation d'objet.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Variables et types de données Python expliqués
Comprendre les variables Python et les types de données de base (chaînes, entiers, flottants, booléens). Un guide complet pour débutants sur l'affectation de mémoire en Python.
Aide-mémoire sur les méthodes de chaîne Python
Un guide de référence complet pour la manipulation des chaînes Python. Maîtrisez le formatage, la recherche, le fractionnement, le remplacement et la vérification des propriétés des chaînes.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.