Portée de variables: variables globales et locales

Les fonctions ››
Parent Previous Next

La portée d'une variable est l'endroit du programme où on peut accéder à la variable.

Observons le script suivant :

a = 10  # variable globale au programme
def mafonction():
    a = 20 # variable locale à la fonction
    print(a)
    return

>>> print(a)  # nous sommmes dans l'espace global du programme

>>> mafonction() # nous sommes dans l'espace local de la fonction

>>> print(a)  # de retour dans l'espace global

Nous avons deux variables différentes qui portent le même nom a

Une variable a de valeur 20 est créée dans la fonction : c'est une variable locale à la fonction.
Elle est détruite dès que l'on sort de la fonction.

global

L'instruction global rend une variable globale :

a = 10  # variable globale
def mafonction():
    global a # la variable est maintenant globale
    a = 20
    print(a)
    return

>>> print(a)

>>> mafonction()

>>> print(a)

Remarque : il est préférable d'éviter l'utilisation de l'instruction global car c'est une source d'erreurs (on peut ainsi modifier le contenu d'une variable globale en croyant agir sur une variable locale).
La sagesse recommande donc de suivre la règle suivante :

Créé avec HelpNDoc Personal Edition: Environnement de création d'aide complet