1410 votes

Y a-t-il une fonction en Python pour imprimer toutes les propriétés actuelles et les valeurs d’un objet ?

Donc ce que je cherche ici, c’est quelque chose comme la fonction print_r de PHP . Il s’agit donc je peux déboguer mes scripts de voir quel est l’état de l’objet en question.

1301voto

Jeremy Cantrell Points 7858

Vous voulez vars() mélangé avec pprint :

785voto

hop Points 15423

Vous êtes vraiment mélanger deux choses différentes.

Utilisez ou le module pour obtenir ce que vous êtes intéressé (j’utilise `` comme exemple ; vous pouvez utiliser n’importe quel objet à la place).

Imprimer ce dictionnaire cependant fantaisie que vous aimez :

ou

294voto

Dan Points 18831
def dump(obj):
  for attr in dir(obj):
    print "obj.%s = %s" % (attr, getattr(obj, attr))

101voto

eduffy Points 17061

dir a été mentionné, mais qui vous donnerons seulement les noms des attributs. Si vous voulez leurs valeurs ainsi essayer dict.

o.dict

{« valeur » : 3}

25voto

J.F. Sebastian Points 102961

Pour imprimer l'état actuel de l'objet, vous pouvez:

>>> obj # in an interpreter

ou

print repr(obj) # in a script

ou

print obj

Pour vos classes définissent __str__ ou __repr__ méthodes. À partir de la documentation Python:

__repr__(self) Appelé par l' repr() fonction intégrée et par chaîne les conversions (inverser les guillemets) à calculer la "officielle" de la chaîne représentation d'un objet. Si possible, cela doit ressembler à un Python expression qui pourrait être utilisé pour recréer un objet avec la même valeur (soit approprié de l'environnement). Si ce n'est pas possible, une chaîne de la forme "<...utile description...>" doit être retourné. La valeur de retour doit être une chaîne de caractères objet. Si une classe définit repr() mais pas __str__(), alors __repr__()est également utilisé lorsqu'un "informelle" de la chaîne la représentation des instances de cette la classe est nécessaire. C'est typiquement utilisé pour le débogage, il est donc important de que la représentation est riche en informations, et sans ambiguïté.

__str__(self) Appelé par l' str() fonction intégrée et par l'impression déclaration de calculer la "informel" représentation sous forme de chaîne d'un objet. Ce qui diffère de l' __repr__() dans il n'a pas à être un Python expression: un plus commode ou représentation concise peut être utilisé au lieu de cela. La valeur de retour doit être un objet de type string.

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