Maison > développement back-end > Tutoriel Python > Comment la règle LEGB de Python détermine-t-elle la portée des variables ?

Comment la règle LEGB de Python détermine-t-elle la portée des variables ?

Barbara Streisand
Libérer: 2024-12-23 07:36:30
original
660 Les gens l'ont consulté

How Does Python's LEGB Rule Determine Variable Scope?

Règle LEGB de Python : Démystifier les règles de portée

Les règles de portée de Python, souvent source de confusion, peuvent être facilement appréhendées grâce à la règle LEGB.

LEGB See More Règle

La règle LEGB fournit un algorithme clair pour déterminer la disponibilité des variables dans une portée donnée :

  • L (Local): Variables définies dans une fonction ou une expression lambda.
  • E (Enclosing-function): Variables définies dans englobant des fonctions, de l'intérieur vers l'extérieur.
  • G (Global) : Variables définies au niveau du module ou déclarées globales au sein d'une fonction.
  • B (Construit -in): Variables pré-attribuées à partir des noms intégrés de Python module.

Exemple

Considérons le code suivant :

class Foo:
    def spam():
        for var in []:
            x()
Copier après la connexion

En utilisant la règle LEGB, nous pouvons déterminer la portée du variable x :

  • L : Aucun. x n'est pas défini localement dans la fonction spam.
  • E : Aucun. La fonction spam n'est pas imbriquée dans une autre fonction.
  • G : Oui. Si x est défini au niveau du module, il sera disponible au sein de la fonction spam.
  • B : Oui. Si x est une variable intégrée (par exemple, une fonction Python), elle sera accessible.

Dans cet exemple, x serait trouvé s'il était défini au niveau du module ou s'il s'agissait d'un Python intégré.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal