Maison > développement back-end > Tutoriel Python > Pourquoi les variables de contrôle de boucle « for » de Python restent-elles dans la portée une fois la boucle terminée ?

Pourquoi les variables de contrôle de boucle « for » de Python restent-elles dans la portée une fois la boucle terminée ?

Mary-Kate Olsen
Libérer: 2024-12-12 15:07:15
original
394 Les gens l'ont consulté

Why Do Python's `for` Loop Control Variables Remain in Scope After the Loop Completes?

Pourquoi les variables de contrôle dans les boucles « for » de Python restent-elles dans la portée par la suite ?

Bien que les règles de portée de Python soient généralement comprises, le choix de conception consistant à conserver la variable de contrôle dans la portée après la sortie de la boucle reste un mystère pour certains. Considérez le code suivant :

for foo in xrange(10):
    bar = 2
print(foo, bar)
Copier après la connexion

Ceci imprime (9, 2), ce qui peut sembler contre-intuitif car « foo » contrôle la boucle et « bar » y est défini. On comprend pourquoi « bar » serait accessible en dehors de la boucle, mais la persistance de « foo » suscite des inquiétudes.

L'explication probable réside dans la simplicité grammaticale. L'affectation à des variables dans des boucles ne nécessite pas de levée d'ambiguïté sur la portée, car les affectations impliquent la portée. La déclaration de variables dans des portées spécifiques n'est pas une pratique en Python. Le mot-clé « global » existe pour désigner explicitement les affectations de portée globale.

Cette conception n'a pas entravé de manière significative l'adoption, et les utilisateurs ont adopté la possibilité d'accéder à la fois au contrôle et aux variables définies en dehors de la boucle. Cela évite les complexités de définition de la portée et de désambiguïsation, simplifiant ainsi la lisibilité et le développement du code.

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