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