Maison >développement back-end >Tutoriel Python >Comment puis-je définir et accéder dynamiquement à des variables locales en Python ?

Comment puis-je définir et accéder dynamiquement à des variables locales en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-18 22:31:15591parcourir

How Can I Dynamically Set and Access Local Variables in Python?

Accès aux variables locales définies dynamiquement en Python

Malgré les suggestions précédentes, la modification directe des variables locales via locals() n'est pas fiable et indéfinie. Au lieu de cela, plusieurs approches pratiques peuvent être utilisées pour réaliser une manipulation dynamique de variables locales.

Manipulation de dictionnaire

Utiliser un dictionnaire pour attribuer et accéder à des variables locales dynamiques :

d = {}
d['xyz'] = 42
print(d['xyz'])

Attributs d'objet

Définissez les attributs sur un objet pour créer une dynamique locale variables :

class C: pass

obj = C()
setattr(obj, 'xyz', 42)
print(obj.xyz)

Remarque :

L'accès aux variables dans des espaces de noms non fonctionnels (modules, définitions de classe, instances) implique généralement des recherches dans le dictionnaire. Les fonctions locales peuvent être optimisées pour la vitesse, et la modification directe de locals() dans une fonction n'est généralement pas possible.

Exception IronPython

Dans IronPython, appeler explicitement locals( ) renvoie les variables locales sous forme de dictionnaire. La liaison d'un nom différent aux valeurs locales au sein d'une fonction donne accès aux variables locales de la portée de liaison.

Conclusion

L'utilisation de dictionnaires ou d'attributs d'objet fournit des méthodes fiables pour définir dynamiquement variables locales en Python. Évitez de compter sur la modification directe de locals() pour éviter un comportement imprévisible.

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