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)
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!