Quelle est la différence entre __str__ et __repr__ en Python ?

| | | | | | | | | | | | | |

Les fonctions intégrées repr () et str () appellent respectivement les méthodes object .__ repr __ (self) et object .__ str __ (self). La première fonction calcule la représentation formelle de l`objet et la seconde renvoie la représentation informelle de l`objet.

Le résultat des deux fonctions est le même pour un objet entier.

 > > > x = 1 > > > repr (x) `1` > > > str (x) `1` 

Cependant, cela ne s`applique pas à l`objet chaîne.






 > > > x = "Bonjour" > > > repr(x) "`Bonjour`"> > > str (x) `Bonjour` 

La valeur de retour repr () d`un objet chaîne peut être évaluée par la fonction eval (), résultant en un objet chaîne valide. Cependant, le résultat de str() ne peut pas être évalué.

 > > > y1 = repr(x) > > > eval (y1) `Bonjour` > > > y2 = chaîne (x) > ; > > eval (y2) NameError : le nom `Hello` n`est pas défini 

Généraliser. repr () renvoie une représentation standard et sans ambiguïté d`un objet, où comme str () donne une représentation informelle qui peut être lisible, mais pas toujours sans ambiguïté.