print
и str
(а также её внутренний эквивалент, который используется функцией print
) сначала пытается использовать метод __str__
. Вообще, этот метод должен возвращать строковое представление в удобном для пользователя виде.Во всех остальных случаях используется метод
__repr__
: функцией автоматического вывода в интерактивной оболочке, функциями print
и str
, когда в классе отсутствует метод __str__
. Вообще этот метод должен возвращать строку, которая могла бы использоваться как программный код для восстановления объекта или содержать информацию, полезную для разработчиков.