Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: str, repr

Чем отличаются __str__ и __repr__?

Вопрос проверяет понимание протоколов представления объектов и различий между пользовательским и отладочным выводом.

Короткий ответ

__str__ предназначен для человекочитаемого вывода. __repr__ — для технического представления объекта. __repr__ используется в отладке и интерактивной консоли. Если __str__ не определён, Python использует __repr__. Обычно __repr__ должен быть максимально информативным.

Длинный ответ

Python различает представление объекта для пользователя и для разработчика.

Определение

__str__ — строковое представление для пользователя.
__repr__ — строковое представление для разработчика и отладки.

Основные различия

Перед примером важно выделить назначение:

  1. __str__

    • используется print()

    • читаемый формат

    • удобен для логов и UI

  2. __repr__

    • используется в REPL

    • должен однозначно описывать объект

    • по возможности позволяет восстановить объект

Пример реализации

class User:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return f"User {self.name}"

    def __repr__(self):
        return f"User(name={self.name!r})"

Практическое правило

  • __str__ — для людей

  • __repr__ — для разработчиков

Вывод

Корректная реализация __repr__ упрощает отладку, а __str__ улучшает читаемость вывода.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • Python

    Python

Ключевые слова

#str

#repr

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.