Maison >développement back-end >Tutoriel Python >Quand puis-je accéder aux variables globales en Python sans utiliser le mot-clé « global » ?
Accès à une variable globale sans le mot-clé 'global' en Python
En Python, l'accès à une variable globale dans une fonction nécessite généralement l'utilisation de le mot-clé « global ». Cependant, il existe des cas où une variable globale est accessible sans la déclarer explicitement comme telle.
Le problème :
Pourquoi est-il possible d'accéder à une variable globale même sans utiliser le mot-clé 'global', comme le démontre l'extrait de code suivant :
sub = ['0', '0', '0', '0'] def getJoin(): return '.'.join(sub) print(getJoin()) # Output: '0.0.0.0'
Le Explication :
Le mot-clé 'global' est principalement utilisé pour modifier ou créer des variables globales dans un contexte local. Cependant, dans certains cas, une variable globale est accessible sans la déclarer explicitement comme globale pour les raisons suivantes :
Exemple :
Considérez le code suivant :
def bob(): me = "locally defined" # Defined only in local context print(me)
L'appel de la fonction bob() affichera "défini localement" car une variable locale nommée me a été définie dans la fonction. Cependant, si nous essayons d'accéder à moi en dehors de la fonction sans le mot-clé 'global', cela entraînera une 'UnboundLocalError'.
print(me) # Asking for a global variable
Conclusion :
Bien que le mot-clé 'global' soit généralement recommandé pour modifier ou créer des variables globales, il est parfois possible d'accéder à des variables globales sans les déclarer explicitement comme telles. Ce comportement est dû à l'observation des variables et au mécanisme de recherche dans les espaces de noms de Python. Cependant, il est important de noter que s'appuyer sur un accès implicite aux variables globales peut entraîner des erreurs et de la confusion. Il est donc recommandé d'utiliser explicitement le mot-clé « global » lorsque cela est nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!