4 votes

Imprimer toutes les variables et leurs valeurs

Cette question a été posée assez souvent, et j'ai essayé chaque solution que je trouve, mais je n'ai eu aucun succès. J'essaie d'imprimer chaque variable et sa valeur en utilisant les deux lignes suivantes.

for name, value in globals():
    print(name, value)

Cela donne une erreur: Too many values to unpack Quand j'exécute:

for name in globals():
    print(name)

Je n'obtiens que les noms des variables. Toute aide serait appréciée.

8voto

n1c9 Points 1724

globals() retourne un dict - donc, pour itérer à travers les paires clé/valeur d'un dict, vous appelez sa méthode items():

dog = 'cat'
>>> for name, value in globals().items():
...     print(name, value)
... 
('__builtins__', )
('__name__', '__main__')
('dog', 'cat')
('__doc__', None)
('__package__', None)
>>> 

Cela est expliqué dans la documentation des structures de données, disponible ici!

Version Python 3:

for name, value in globals().copy().items():
    print(name, value)

si nous ne copions pas les fonctions globals alors il y aura une RuntimeError.

De plus, s'il y a des listes et des dictionnaires dans la sortie de certaines variables, utilisez deepcopy() au lieu de copy()

for name, value in globals().deepcopy().items():
    print(name, value)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X