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
Libérer: 2024-12-18 22:31:15
original
524 Les gens l'ont consulté

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'])
Copier après la connexion

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)
Copier après la connexion

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!

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