纯粹是装饰性的东西,但是当我在 python 中创建一个类时,我如何控制它的实例的标题?例如对于
class Foo():
def __init__(self, name):
self.name = name
然后我可以创建一个实例:
>> f = Foo('bar')
>> f
<Foo instance at 0x10ab41a28>
如果我希望它返回 bar,我该怎么做? (在 Django 中,您使用类的 __unicode__ 方法,但我尝试设置 __unicode__ 和 __str__ 函数返回 self.name,虽然这些独立工作,但它们不会影响类的值。)
请您参考如下方法:
我通常定义__str__返回一个字符串表示,然后在__repr__方法中返回字符串,像这样:
>>> class Foo():
... def __init__(self, name):
... self.name = name
... def __str__(self):
... return '<Foo name=%s>' % self.name
... def __repr__(self):
... return str(self)
...
>>> f = Foo('bar')
>>> f
<Foo name=bar>
有关详细信息,请参阅 Difference between str and repr in Python
