Syntaxe
|
global identifier ("," identifier)
|
Paramètres
| Nom |
Description |
| identifier |
Ce paramètre permet d'indiquer les identificateurs devant être global. |
Description
Ce mot réservé permet d'indiquer que la porté du bloc de code est perçu de façon globale.
Remarques
- Le mot clef global permet d'utiliser une variable définie à l'extérieur d'une fonction : Sans cette déclaration, toute assignation à une variable
dans une fonction crée une variable locale. En déclarant global x, on indique que x fait référence à la variable globale existante.
- global est indispensable pour modifier une variable globale depuis une fonction : Si on omet global, Python considère qu'on veut créer
une nouvelle variable locale, ce qui peut provoquer une erreur ou un comportement inattendu. Cela évite les confusions liées à la portée des variables.
- Une seule instruction global peut déclarer plusieurs identifiants : On peut écrire global a, b, c pour rendre trois variables accessibles
globalement dans la fonction. Cela permet de centraliser la déclaration et d'alléger le code.
- L'usage excessif de global peut nuire à la lisibilité et à la maintenabilité du code : Trop de variables globales introduisent un couplage fort entre les
fonctions et l'état global. Cela rend le code plus difficile à tester et à faire évoluer.
- Le mot clef global ne peut être utilisé que dans une fonction ou un bloc : Il n'est pas nécessaire au niveau global lui-même. Par exemple, utiliser
global x dans le module principal n'a aucun effet utile. Il doit apparaître à l'intérieur d'un bloc d'instruction pour être pertinent.
- Les variables déclarées avec global sont réellement partagées entre toutes les fonctions du module : Une fois modifiées, ces variables conservent leur
nouvelle valeur partout où elles sont appelées. Cela en fait un outil puissant mais potentiellement dangereux en cas de mauvaise gestion.
- L'utilisation de global est parfois évitée au profit de structures comme les classes : Plutôt que de s'appuyer sur des variables globales, encapsuler les
données dans une classe permet un meilleur contrôle. Cela encourage une programmation orientée objet plus propre.
- La confusion entre global et nonlocal est fréquente mais leur usage est différent : global agit sur la portée du module, tandis que nonlocal concerne une
variable d'une fonction englobante. Cette distinction est essentielle dans les fonctions imbriquées ou les closures.
Dernière mise à jour : Mercredi, le 16 mai 2018