Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
948 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  __repr__ et __str__

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

__repr__ et __str__

n°2053202
cricket18
Posté le 31-01-2011 à 14:05:48  profilanswer
 

Bonjour,
 
Quelle est la différence entre __str__ et __repr__ ?
 
Par exemple :
 

Code :
  1. class fonction1(object):
  2.        def __init__(self,a,b,c):
  3.             self.a = a
  4.             self.b = b
  5.             self.c = c
  6.        def __str__(self):
  7.           return "%d %d %d" % (self.a, self.b, self.c)


 
 
comment réécrire ce code avec __repr__ ?
 
 
Merci de votre aide.

mood
Publicité
Posté le 31-01-2011 à 14:05:48  profilanswer
 

n°2053203
theshockwa​ve
I work at a firm named Koslow
Posté le 31-01-2011 à 14:08:58  profilanswer
 

il me semble que, dans l'esprit :
__str__ donne une représentation humainement lisible de l'objet
__repr__ donne une représentation "machine" (exécutable via eval par exemple) de cet objet


Message édité par theshockwave le 31-01-2011 à 14:09:22

---------------
last.fm
n°2053206
cricket18
Posté le 31-01-2011 à 14:27:23  profilanswer
 

Donc, __str__ et __repr__ font pratiquement la même chose ?

 

Je peux donc écrire :

 

[CODE]
def __repr__(self):
     return "%d %d %d" % (self.a, self.b, self.c)
[\CODE]

 

c'est bien cela ou il faut réécrire autrement avec __repr__ ?

 


Message édité par cricket18 le 31-01-2011 à 14:28:28
n°2053231
mr simon
Posté le 31-01-2011 à 15:11:20  profilanswer
 

Quelques postes ta question:


Pour ton code, tu peux aussi faire:

Code :
  1. def __repr__(self):
  2.     return "%d %d %d" % (self.a, self.b, self.c)
  3. __str__ = __repr__

n°2053242
theshockwa​ve
I work at a firm named Koslow
Posté le 31-01-2011 à 15:46:34  profilanswer
 

l'un des articles que tu lies a un commentaire qui suggère une implémentation qui vérifies cette expression :

Code :
  1. eval(repr(c))==c


 
Je trouve que c'est une bonne chose de faire un repr de ce genre là autant que possible.


---------------
last.fm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  __repr__ et __str__

 

Sujets relatifs
python et l'unicode : -U / python 3000 / repr ... [résolu] 
Plus de sujets relatifs à : __repr__ et __str__


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR