Как создать пользовательское строковое представление для объекта класса?

Рассмотрим этот класс:

class foo(object): pass 

Строковое представление по умолчанию выглядит примерно так:

 >>> str(foo) "<class '__main__.foo'>" 

Как я могу сделать это отображение собственной строкой?

2 Solutions collect form web for “Как создать пользовательское строковое представление для объекта класса?”

__str__() или __repr__() в метакласс класса.

 class MC(type): def __repr__(self): return 'Wahaha!' class C(object): __metaclass__ = MC print C 

Используйте __str__ если вы имеете в виду читаемую строкопись, используйте __repr__ для однозначных представлений.

 class foo(object): def __str__(self): return "representation" def __unicode__(self): return u"representation" 
Python - лучший язык программирования в мире.