Qu'est-ce qu'une variable globale et une variable locale en Python ?
Une variable en Python est un emplacement mémoire utilisé pour stocker une valeur. Deux types de variables sont couramment utilisées: les variables globales et les locales.
Variable globale
Une variable globale est disponible dans l'ensemble du programme, déclarée en dehors des fonctions. Elle peut être utilisée et modifiée par n'importe quelle fonction.
x = 10
def ma_fonction():
global x # Pour utiliser x comme une variable globale
x += 5 # Modifie la valeur de x à 15
ma_fonction()
print(x) # Affiche 15, car la fonction a modifié la valeur globale
!!!warning
Il est rare qu'on ait besoin de modifier une variable globale ainsi. En général, l'utilisation du mot-clé global
n'est pas une bonne idée. Les variables globales sont souvent utilisées en tant que constantes (donc des variables que vous ne modifiez pas).
!!!
On utiliserait ainsi plutôt une variable globale ainsi :
import requests
API_KEY = "Clé d'API d'un service"
def get_data():
requests.get("https://www.api.com/get-users/", headers={"Authorization": API_KEY})
Ici, on définie une variable dans l'espace global du script. Les majuscules indiquent par convention qu'il s'agit d'une constante. On utilise ensuite cette variable dans get_data
, sans la modifier.
Variable locale
Une variable locale est définie uniquement dans une fonction, et est inaccessible en dehors de celle-ci.
Sa valeur et sa portée sont limitées à cette fonction.
def ma_fonction():
y = 5 # y est une variable locale
print(y)
ma_fonction() # Affiche 5
print(y)
# Erreur NameError: name 'y' is not defined
# car y n'est accessible que dans la fonction