Portée Python

Les variables ne sont disponibles que dans la zone de création. Cela s'appelle la portée.

Portée locale

Les variables créées à l'intérieur d'une fonction appartiennent à la portée locale de cette fonction et ne peuvent être utilisées qu'à l'intérieur de cette fonction.

Exemple

Les variables créées à l'intérieur d'une fonction sont disponibles à l'intérieur de cette fonction :

def myfunc():
  x = 100
  print(x)
myfunc()

Exécuter l'exemple

Fonction à l'intérieur d'une fonction

Comme dans l'exemple ci-dessus, la variable x n'est pas disponible à l'extérieur de la fonction, mais est disponible pour toutes les fonctions à l'intérieur de la fonction :

Exemple

Il est possible d'accéder à une variable locale à l'intérieur d'une fonction depuis une autre fonction :

def myfunc():
  x = 100
  def myinnerfunc():
    print(x)
  myinnerfunc()
myfunc()

Exécuter l'exemple

Portée globale

Les variables créées dans le corps du code Python sont des variables globales, appartenant à l'aire d'action globale.

Les variables globales sont disponibles dans toutes les portées (globale et locale).

Exemple

Les variables créées à l'extérieur d'une fonction sont des variables globales, accessibles à tout le monde :

x = 100
def myfunc():
  print(x)
myfunc()
print(x)

Exécuter l'exemple

Nommer une variable

Si vous opérez sur des variables homonymes à l'intérieur et à l'extérieur d'une fonction, Python les considère comme deux variables distinctes, l'une disponible dans la portée globale (à l'extérieur de la fonction) et l'autre disponible dans la portée locale (à l'intérieur de la fonction) :

Exemple

Cette fonction affichera la variable locale x, puis le code affichera également la variable globale x :

x = 100
def myfunc():
  x = 200
  print(x)
myfunc()
print(x)

Exécuter l'exemple

Mot-clé global

Si vous avez besoin de créer une variable globale mais êtes bloqué dans une portée locale, vous pouvez utiliser le mot-clé global.

Le mot-clé global rend une variable variable globale.

Exemple

Si vous utilisez le mot-clé global, la variable appartient à la portée globale :

def myfunc():
  global x
  x = 100
myfunc()
print(x)

Exécuter l'exemple

De plus, si vous devez modifier une variable globale à l'intérieur d'une fonction, utilisez également le mot-clé global.

Exemple

Pour modifier la valeur d'une variable globale à l'intérieur d'une fonction, utilisez le mot-clé global pour faire référence à cette variable :

x = 100
def myfunc():
  global x
  x = 200
myfunc()
print(x)

Exécuter l'exemple