C16.1 : Portée des variables

Variables globales et locales

Présentation

• Une variable définie dans le programme principal est appelée variable globale.

• Une variable définie dans une fonction est appelée variable locale.

Les variables locales sont supprimées à la fin de l'exécution de la fonction.

Les variables globales ne peuvent pas être modifiées depuis une fonction de façon simple.

Attention aux noms des variables

Un problème se pose lorsque le même nom est donné à une variable locale et à une variable globale.

• Lorsque une variable est appelée dans le programme principal : c'est la variable globale qui est utilisée.

• Lorsque une variable est appelée dans une fonction :

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").

Bonne pratique : Ne pas donner à une variable locale un nom déjà utilisé pour une variable globale.

Attention aux noms des paramètres

Bonne pratique : Ne pas donner aux paramètres les mêmes noms que ceux des variables globales.

Application (sur papier)

🖊️ Pour chacun des exemples suivants, et pour chaque ligne qui contient un print, indiquer :

Attention : dans certains cas, le programme peut afficher une erreur !

Exemple 1

def fonc():
    print(val1)
val1 = 4
fonc()

Exemple 2

def fonc():
    val1 = 8
    print(val1)
val1 = 4
fonc()

Exemple 3

def fonc():
    val1 = 8
val1 = 4
fonc()
print(val1)

Exemple 4

def fonc():
    val2 = val1
    print(val2)
val1 = 4
fonc()

Exemple 5

def fonc():
    val2 = val1
val1 = 4
fonc()
print(val2)

Exemple 6

def fonc():
    val1 = 8
    val2 = val1
    print(val2)
val1 = 4
fonc()

Exemple 7

def fonc():
    val2 = val1
    val1 = 8
    print(val1)
val1 = 4
fonc()

Outils de débogage (prendre connaissance)

Le point d'arrêt avec Thonny

Le point d'arrêt de Thonny () permet de lancer l'exécution d'un programme jusqu'à une instruction spécifiquement repérer et de visualiser l'état de toutes les variables juste avant que cette instruction ne soit exécutée. Il est ensuite possible d'avancer dans le programme pas à pas.

Méthode à suivre :

Visualisation des variables en cours d'exécution avec Python Tutor

Lien : pythontutor.com/python-debugger.html

Python tutor permet de visualiser l'état de toutes les variables au cours de l'exécution d'un programme.

Il permet d'une part de différencier les variables globales des variables locale.

Il aide également à visualiser la différence de traitement entre les variables de type non mutables et mutables.