Explorer les nuances de globals(), locals() et vars()
Python propose trois fonctions d'introspection qui fournissent un aperçu de la espace de noms actuel : globals(), locals() et vars(). Chacun renvoie un dictionnaire avec des informations spécifiques.
globals()
globals() renvoie systématiquement le dictionnaire de l'espace de noms du module actuel. Il donne accès à tous les noms définis globalement dans le module.
locals()
locals() est dynamique et son comportement dépend de la portée.
Par exemple, dans une fonction :
def example(): x = 1 l = locals() l['x'] = 3 print(x) # Outputs 1, not 3
Par exemple :
class Test: a = 'one' huh = locals() b = 'two' huh['c'] = 'three' print(huh) # Outputs {'a': 'one', 'b': 'two', 'c': 'three', 'huh': {...}}
vars()
vars() accepte un objet comme argument et renvoie son attribut dict. En règle générale, le dict d'un objet stocke ses données d'attribut. Par conséquent, fournir un objet à vars() donne accès à ses attributs.
class Test: a = 'one' b = 'two' huh = vars(self) c = 'three' huh['d'] = 'four'
Dans cet exemple, vars(self) renvoie l'attribut dict de l'instance de Test, permettant l'accès à ses attributs comme 'a', 'b' et 'c'.
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!