我写了这段代码:
class Item:
def __init__(self, name):
self._name = name;
def __str__(self):
return "Item: %s" % self._name
当我运行时
print((Item("Car"),))
输出结果为
(<__main__.Item object at 0x0000000002D32400>,)
当我将代码更改为以下内容:
class Item:
def __init__(self, name):
self._name = name;
def __repr__(self):
return "Item: %s" % self._name
def __str__(self):
return "Item: %s" % self._name
然后它输出
(Item: Car,)
所以现在我对__repr__
和__str__
之间的区别感到困惑。
__repr__
通常应该是一个能够重现对象的语句会很有用。从文档中可以看到:“这应该看起来像一个有效的Python表达式,可以用来重新创建具有相同值的对象”。 - Joe Kingtonfrom datetime import datetime as dt; dt.today().__str__(); dt.today().__repr__()
. - Prashant Kumar