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

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

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" 
Interesting Posts

Поддерживает ли PyQT4 signal.connect объекты в реальном времени?

Как получить земно-инерционные или земно-ориентированные координаты объектов из PyEphem?

Какой генератор парсера использует CPython?

Объединить сортировку в python

Ошибка Python с плавающей точкой 117.285 раунд до 117.28 не 117.29

Зачем объявлять unicode по строке в python?

Назначение атрибута встроенному объекту

MPI4Py вызывает ошибку при отправке / возврате

регулярное выражение python, вставляющее пробел между пунктуацией и буквами

«Ошибка имени: имя« get_ipython »не определено» при подготовке сеанса отладки через «import ipdb»

Создание формы с использованием Generic_inlineformset_factory из формы модели

использование pandas для выбора строк, обусловленных множественными эквивалентами

Как уменьшить плотность люка в matplotlib

Выполнить модуль, поскольку сценарий прерывает импорт

NameError: глобальное имя 'long' не определено

Python - лучший язык программирования в мире.