В чём разница между __str__ и __repr__?

Middle
299 просмотров
AFK Offer AI

__str__ — человекочитаемое строковое представление, вызывается print() и str(). __repr__ — однозначное представление для разработчика, вызывается repr() и в интерактивной консоли. Правило: __repr__ должен быть таким, что eval(repr(obj)) воссоздаст объект (в идеале). Если определён только __repr__, он используется как fallback для __str__. Обратное не работает. Всегда определяй __repr__ — для дебага это критично. __str__ — опционально, для юзер-фейсинг вывода.

Следующий вопрос

Как работает BaseModel в Pydantic?