Aller au contenu principal

3 formations sont désormais disponibles : Python, Flask et JS.

Aller au contenu principal

Portée des variables (Scope)

C'est une erreur classique de débutant. Une variable créée DANS une fonction n'existe PAS en dehors. Elle est locale.

def ma_fonction():
    secret = 42 # Variable locale
    print(secret)

ma_fonction() # Affiche 42
# print(secret) -> ERREUR ! "name 'secret' is not defined"

Global

À l'inverse, une fonction peut LIRE une variable globale (définie dehors), mais pas la modifier directement (sauf avec le mot-clé global, mais c'est mal vu).

score = 0

def gagner():
    # score = 10 -> Crée une NOUVELLE variable locale score, ne touche pas au score global
    global score # Dit à Python qu'on parle du score global
    score = 10

Conseil d'ami : Évite global. Passe les valeurs en arguments et récupère-les avec return. C'est plus propre.