str y réprimer sont deux façons de représenter. Vous pouvez les utiliser lorsque vous rédigez un cours.
class Fraction:
def __init__(self, n, d):
self.n = n
self.d = d
def __repr__(self):
return "{}/{}".format(self.n, self.d)
par exemple, lorsque j'imprime une instance de celui-ci, il renvoie des choses.
print(Fraction(1, 2))
se traduit par
1/2
alors que
class Fraction:
def __init__(self, n, d):
self.n = n
self.d = d
def __str__(self):
return "{}/{}".format(self.n, self.d)
print(Fraction(1, 2))
se traduit également par
1/2
Mais si vous écrivez les deux, lequel des deux est utilisé par Python ?
class Fraction:
def __init__(self, n, d):
self.n = n
self.d = d
def __str__(self):
return "str"
def __repr__(self):
return "repr"
print(Fraction(None, None))
Il en résulte
str
Ainsi, python utilise en fait l'option str et non la méthode réprimer lorsque les deux sont rédigés.
9 votes
stackoverflow.com/questions/1436703/
5 votes
Pour ceux qui viennent de Ruby, le résumé est le suivant :
__str__
=to_s
y__repr__
=inspect
.3 votes
Cela répond-il à votre question ? Différence entre __str__ et __repr__ ?