# Portée de variables: variables globales et locales

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 :

- ne jamais affecter dans un bloc de code local une variable de même nom qu'une variable globale

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