Infoforall

Identification

Infoforall

Résumé 9 - PORTÉE DES VARIABLES


Lien vers l'activité : Portée des variables

Dernière modif. : 01 11 2020

6.1 Espace des noms

En informatique, une variable est en réalité un alias vers une adresse-mémoire.

espace des noms

Lorsqu'on utilise une variable dans un programme, l'interpréteur va donc aller lire ce qui est contenu à l'identifiant correspondant.

Python ne donne pas directement accès à l'adresse-mémoire réelle mais on peut obtenir un identifiant mémoire à l'aide de la fonction native id. Par exemple, on accède à l'identifiant Python d'une variable a avec id(a).

Si deux variables ont le même identifiant dans Python, c'est qu'elles font bien référence au même contenu-mémoire. Elles sont deux alias vers le même contenu.

6.2 - Portée des variables locales

Variable locale : variable dont l'affectation est faite dans la fonction. Dans l'exemple ci-dessous, mot et nombre_caracteres sont des variables locales.
1 2 3
def compter_lettres() : mot = 'bonjour' # Variable locale nombre_caracteres = len(mot) # Variable locale
Durée d'existence : une variable locale est détruite lorsqu'on sort de la fonction.
Portée : on ne peut ni lire ni modifier une variable locale en dehors de la fonction elle-même.

portee-variable-locale

Espace des noms : deux fonctions peuvent contenir les mêmes noms de variables sans aucun problème : l'interpréteur les traite comme des variables différentes graçe à l'espace des noms.
1 2 3 4 5 6 7 8 9 10 11 12 13
def positif(x) : if x < 0 : x = -x return x def pas_negatif(x) : if x < 0 : x = 0 return x x = -5 y = positif(x) z = pas_negatif(x)

Ici, il n'y a pas de probème avec le fait que les deux fonctions utilisent des variables ayant le même nom. Chaque fonction n'a accès qu'aux variables qu'elles contiennent. Il ne peut donc pas y avoir de confusion, à part pour un humain qui n'aurait pas compris ce principe. La notion de portée est donc fondamentale à comprendre et savoir appliquer.