Как упоминал Крис Лутц , это определяется методом __repr__
в вашем классе.
Из документации repr()
:
Для многих типов эта функция пытается вернуть строку, которая даст объект с тем же значением при передаче в
eval()
, иначе представление представляет собой строку, заключенную в угловые скобки, которая содержит имя типа объекта вместе с дополнительной информацией, часто включающей имя и адрес объекта. Класс может управлять тем, что эта функция возвращает для своих экземпляров, определяя метод__repr__()
.Учитывая следующий класс Test:
class Test: def __init__(self, a, b): self.a = a self.b = b def __repr__(self): return "
" % (self.a, self.b) def __str__(self): return "From str method of Test: a is %s, b is %s" % (self.a, self.b) .. он будет выполните следующие действия в оболочке Python:
>>> t = Test(123, 456) >>> t
>>> print repr(t) >>> print(t) From str method of Test: a is 123, b is 456 >>> print(str(t)) From str method of Test: a is 123, b is 456 Если метод
__str__
не определен,print(t)
(илиprint(str(t))
) будет использовать результат__repr__
вместоЕсли метод
__repr__
не задан, используется значение по умолчанию, которое в значительной степени эквивалентно ..def __repr__(self): return "<%s instance at %s>" % (self.__class__.__name__, id(self))