Mémo : Portée des variables
Variables globales et locales
Variables locales
Définition : Les variables locales sont définies dans les définitions des fonctions.
Fonctionnement : Les variables locales sont supprimées à la fin de l'exécution de la fonction dans laquelle elles ont été définies.
Variables globales
Définition : Les variables globales sont définies dans le programme principal.
Fonctionnement : Les variables globales ne peuvent pas être modifiées depuis une fonction de façon simple.
Noms des variables
Un problème se pose lorsque le même nom est donné à une variable locale et à une variable globale.
Depuis le programme principal
• Lorsque une variable est appelée dans le programme principal, c'est la variable globale qui est utilisée. En effet, les variables locales sont détruites à la fin de l'exécution du code des fonctions.
Depuis le code d'une fonction
Fonctionnement Lorsque une variable est appelée dans une fonction :
- ⇒ le programme regarde d'abord localement si la variable existe :
- ⮕ si c'est le cas : la variable locale est utilisée,
- ⮕ si ce n'est pas le cas, alors le programme regarde globalement si la variable existe :
- ⮕ si c'est le cas : la variable globale est utilisée (depuis la fonction),
- ⮕ si ce n'est pas le cas : un erreur est renvoyée.
Remarque : Lorsque dans une fonction, une variable globale a été appelée une fois, il n'est plus possible d'utiliser le nom de la variable globale comme variable locale (l'exécution du programme génère une erreur "local variable 'nom_var' referenced before assignment").
Bonnes pratiques
Ne pas donner à une variable locale un nom déjà utilisé pour une variable globale.
Noms des paramètres
Bonnes pratiques : Ne pas donner aux paramètres les mêmes noms que ceux des variables globales.