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!