Maison >développement back-end >Tutoriel Python >Pourquoi les boucles « for » de Python laissent-elles les variables de boucle dans la portée ?

Pourquoi les boucles « for » de Python laissent-elles les variables de boucle dans la portée ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-10 00:14:11559parcourir

Why Do Python's `for` Loops Leave Loop Variables in Scope?

Portée des boucles 'for' de Python : comprendre la philosophie de conception

Bien que les règles de portée de Python pour les boucles 'for' soient généralement comprises, le raisonnement qui les sous-tend est resté un mystère. Cet article étudie la justification des décisions de conception qui ont conduit au comportement de cadrage actuel.

Considérez le code Python suivant :

for foo in xrange(10):
    bar = 2
print(foo, bar)

Une fois exécuté, ce code s'imprimera (9, 2 ). Ce comportement est surprenant car « foo » n'est utilisé que pour contrôler l'itération de la boucle et « bar » est défini dans la boucle. Logiquement, il semblerait inutile que « bar » soit accessible en dehors de la boucle et que la variable de contrôle de boucle « foo » reste dans la portée après la sortie de la boucle.

L'explication la plus plausible de ce choix de conception est la simplicité. . En gardant les règles de portée simples, Python maintient une grammaire claire et concise. Cette décision n’a pas empêché son adoption et la fonctionnalité a été largement acceptée par la communauté. L'attribution de variables dans les constructions de boucles ne nécessite pas de levée d'ambiguïté explicite de la portée. De plus, le mot-clé global fournit un moyen d'attribuer des variables à une portée globale.

Une discussion approfondie sur les règles de portée de Python peut être trouvée sur la liste de diffusion Python Ideas. Un argument notable est que le code existant repose souvent sur des variables de boucle conservant leurs valeurs après la sortie d'une boucle, ce qui est considéré comme une fonctionnalité souhaitable.

En conclusion, la philosophie de conception de Python pour la portée des boucles « for » donne la priorité à la simplicité, avec le but de maintenir une syntaxe claire et concise. Cette approche s'est avérée populaire au sein de la communauté Python, malgré certains inconvénients potentiels concernant les espaces de noms globaux encombrés et le suivi des erreurs.

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!

Déclaration:
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