Examiner les espaces de noms
globals() : accéder aux noms globaux
globals() renvoie le dictionnaire des noms globaux du module courant. Dans une fonction, il s'agit du module où cette fonction a été définie.
Une modification de ce dictionnaire peut modifier les variables globales ; l'accès direct aux noms reste préférable dans le code courant.
Equivalent en C#
var settings = new Dictionary<string, object>
{
["DEFAULT_TAX_RATE"] = 0.20
};
Console.WriteLine(settings["DEFAULT_TAX_RATE"]);
C# ne fournit pas de dictionnaire natif vivant de tous les noms globaux équivalent à globals(). Un objet de configuration, une classe statique ou un dictionnaire explicite répond au besoin d’organisation, sans reproduire l’espace de noms du langage.
locals() : examiner les noms locaux
def describe(name, price):
information = locals()
print(information["name"])
print(information["price"])
describe("Clavier", 69.90)
# Clavier
# 69.9
Le comportement dépend de la portée. Depuis Python 3.13, dans une fonction, chaque appel fournit un instantané des liaisons locales : modifier le dictionnaire obtenu ne réaffecte pas les variables locales. Évitons donc de l'utiliser pour modifier ces variables.
Equivalent en C#
string name = "Clavier";
double price = 69.90;
var information = new { Name = name, Price = price };
Console.WriteLine(information.Name);
Console.WriteLine(information.Price);
Il n’existe pas d’API C# ordinaire équivalente pour obtenir automatiquement un dictionnaire des variables locales. Nous construisons explicitement les données à inspecter. Les informations accessibles à un débogueur ne constituent pas ce même mécanisme.