Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Comprendre les variables globales, locales et non locales en Python

Comprendre les variables globales, locales et non locales en Python

Maîtrisez l'utilisation des variables globales, locales et non locales en Python, et sachez quand appliquer chacune pour un code propre et maintenable.

Vidéo : Variables locales et globales en Python

Variables globales

En Python, une variable déclarée en dehors de toute fonction — au niveau du module — est une variable globale. Elle peut être lue depuis n'importe où dans le module, mais doit être déclarée avec le mot-clé global si vous voulez la modifier à l'intérieur d'une fonction.

Exemple : création et lecture d'une variable globale

x = "global"
def foo():
    print("x à l'intérieur :", x)
foo()
print("x à l'extérieur :", x)

Sortie

x à l'intérieur : global
x à l'extérieur : global

Tenter de réassigner x sans la déclarer globale résulte en une UnboundLocalError :

x = "global"
def foo():
    x = x * 2
    print(x)
foo()

Sortie

UnboundLocalError: local variable 'x' referenced before assignment

Pour modifier une variable globale à l'intérieur d'une fonction, utilisez le mot-clé global :

x = "global"
def foo():
    global x
    x = x * 2
    print(x)
foo()

Sortie

globalglobal

Variables locales

Une variable locale est définie dans le corps d'une fonction et n'existe que pendant l'exécution de cette fonction. Elle ne peut pas être accédée en dehors de la fonction.

Exemple : accès à une variable locale en dehors de sa portée

def foo():
    y = "local"
foo()
print(y)

Sortie

NameError: name 'y' is not defined

Définition et utilisation correcte d'une variable locale :

def foo():
    y = "local"
    print(y)
foo()

Sortie

local

Combinaison de variables globales et locales

Il est courant d'utiliser les deux portées dans le même module. Le mot-clé global assure que une variable fait référence à l'instance au niveau du module.

x = "global "
def foo():
    global x
    y = "local"
    x = x * 2
    print(x)
    print(y)
foo()

Sortie

global global
local

Quand une variable locale partage un nom avec une globale, elles sont indépendantes :

x = 5
def foo():
    x = 10
    print("x local :", x)
foo()
print("x global :", x)

Sortie

x local : 10
x global : 5

Variables non locales

Les fonctions imbriquées peuvent accéder et modifier les variables de leur portée englobante (mais pas globale) en utilisant le mot-clé nonlocal.

def outer():
    x = "local"
    def inner():
        nonlocal x
        x = "nonlocal"
        print("inner :", x)
    inner()
    print("outer :", x)
outer()

Sortie

inner : nonlocal
outer : nonlocal

Note : La mise à jour d'une variable non locale à l'intérieur de la fonction interne met à jour la variable dans la portée de la fonction externe.

Python

  1. Variables, constantes et littéraux en C : Guide complet
  2. Mots-clés et identifiants Python : Maîtriser les mots réservés et les conventions de nommage
  3. Instructions, indentation et commentaires en Python : Guide clair
  4. Variables, constantes et littéraux en Python – Guide complet
  5. Maîtriser la conversion et le transtypage de types en Python : Guide complet
  6. Maîtriser les E/S et l'importation de modules en Python : Guide pratique
  7. Maîtriser le mot-clé global en Python : Comment et quand l'utiliser
  8. Maîtriser les nombres, la conversion de types et les mathématiques en Python
  9. Maîtriser les opérations sur les répertoires et fichiers en Python