Skip to main content
 首页 » 编程设计

python之如何在 Python 中控制类实例的标题

2025年05月04日12softidea

纯粹是装饰性的东西,但是当我在 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