Définitions
Portée = Zone de visibilité d'une variable
Règles de visibilité des variables dans le code
Variable locale :
Définie dans une fonction
Visible uniquement dans cette fonction
Disparaît après exécution de la fonction
Visible uniquement dans cette fonction
Disparaît après exécution de la fonction
Variable globale :
Définie au niveau principal
Visible dans tout le programme
Existe pendant toute l'exécution
Visible dans tout le programme
Existe pendant toute l'exécution
Règles de portée
Une fonction ne voit pas ses variables locales
Une fonction peut lire les variables globales
Éviter les modifications de variables globales
Exemples de portée
# Variable globale
compteur = 0
def increment():
# Variable locale
valeur_locale = 1
global compteur
compteur += valeur_locale
def afficher():
# Accès à la variable globale
print(compteur)
# Erreur : valeur_locale inaccessible ici
# print(valeur_locale) # Décommenter pour voir l'erreur
# Appel des fonctions
increment()
afficher() # Affiche 1
Règle LEGB : Local → Enclosing → Global → Built-in
Redéfinition locale masque la variable globale
Mot-clé global pour modifier variable globale
Mot-clé nonlocal pour variables englobantes
Cas particuliers
Fonctions imbriquées : portée englobante
Modules : portée au niveau fichier
Classes : portée spécifique aux objets
Bonnes pratiques
Préférer les variables locales
Minimiser l'utilisation des variables globales
Documenter clairement les variables globales
Utiliser des paramètres pour transmettre des données
Retourner les résultats plutôt que modifier globalement
Erreurs Fréquentes
Erreur 1 :
Essayer d'accéder à une variable locale en dehors de sa fonction
Erreur 2 :
Modifier accidentellement une variable globale
Erreur 3 :
Confusion entre variables locales et globales
Erreur 4 :
Redéfinir une variable globale localement sans le vouloir
Méthodes de gestion
Variables globales :
Utiliser des constantes pour les valeurs fixes
Limiter au strict nécessaire
Documenter leur utilisation
Limiter au strict nécessaire
Documenter leur utilisation
Variables locales :
Privilégier pour les calculs temporaires
Nommer clairement leur usage
Limiter leur durée de vie
Nommer clairement leur usage
Limiter leur durée de vie