PaliSkill
Python intermédiaire

Leçon 4 / 9 — Chapitre 7: Modules, portée et fermetures

Portée locale et globale : approfondissement

Python Débutant a déjà montré qu'une variable créée à l'intérieur d'une fonction (portée locale) n'existe pas en dehors de celle-ci. Ce chapitre approfondit un point plus subtil : la lecture d'une variable globale depuis une fonction.

seuil = 10

def verifier(valeur):
    if valeur > seuil:
        print("Au-dessus du seuil")
    else:
        print("En dessous du seuil")

verifier(15)

Ce code affiche Au-dessus du seuil : une fonction peut lire une variable globale (seuil) sans rien de spécial à écrire, tant qu'elle ne cherche pas à la modifier — Python la retrouve automatiquement si aucune variable locale de même nom n'existe dans la fonction.

En revanche, affecter une valeur à un nom à l'intérieur d'une fonction crée toujours une nouvelle variable locale, même si une variable globale du même nom existe déjà :

compteur = 0

def incrementer():
    compteur = compteur + 1
    print(compteur)

incrementer()

Ce code lève une erreur UnboundLocalError : Python voit compteur = ... dans la fonction et traite compteur comme une variable locale sur toute la fonction — y compris à droite du =, avant même qu'elle n'ait de valeur locale. La prochaine leçon montre comment modifier réellement une variable globale depuis une fonction.

À vous de jouer : écrivez une fonction qui lit une variable globale dans une condition (sans la modifier), et vérifiez qu'aucune erreur ne survient.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 85 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès