Курс Python → Методы __repr__ и __str__ в Python

Метод __repr__ в Python позволяет определять строковое представление объекта, которое предназначено для программиста и удобно при использовании во время отладки. Этот метод возвращает строку, которая должна содержать информацию о состоянии объекта, такую как его тип и значения его атрибутов. Это помогает программисту лучше понять, как устроен объект и что в нем содержится.

С другой стороны, метод __str__ позволяет определять понятное пользователю строковое представление объекта, которое можно отображать в интерфейсе программы. Этот метод используется, когда объект неявно преобразуется в строку, например, при вызове функции print() или при использовании объекта в форматированных строках.

Например, предположим, у нас есть класс Person, который имеет атрибуты name и age. Мы можем определить метод __repr__, который вернет строку с информацией об объекте, и метод __str__, который вернет строку, удобную для отображения пользователю:


class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f'Person(name={self.name}, age={self.age})'

    def __str__(self):
        return f'{self.name} is {self.age} years old'

Теперь, если мы создадим объект класса Person и выведем его с помощью функции print(), мы увидим результат, определенный методом __str__, а если мы выведем объект напрямую, мы увидим результат, определенный методом __repr__:


person = Person('Alice', 30)
print(person)  # Вывод: Alice is 30 years old
person  # Вывод: Person(name=Alice, age=30)
Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Использование модуля math
  2. Структуры данных в Python
  3. Отладка регулярных выражений в Python
  4. Многопоточность в Python
  5. Принципы программирования
  6. Работа с аргументами командной строки
  7. Многоточие в Python
  8. Измерение времени выполнения кода
  9. Определение локальных переменных в Python
  10. Метод join() для объединения элементов
  11. Подчеркивание в REPL
  12. Объединение словарей в Python
  13. Структурирование именованных констант
  14. GitHub в Telegram: подписка на уведомления
  15. Метод pop() списка
  16. Метод rmatmul для пользовательских матриц
  17. Обмен переменными в Jupyter
  18. Профилирование с Pandas
  19. Создание итерируемых объектов
  20. Отрицательные индексы списков
  21. Блок else в Python
  22. Создание лямбда-функций
  23. Аннотации типов в Python
  24. Аннотации типов в Python
  25. Векторизация в Python с NumPy.
  26. История Python
  27. Создание функций с произвольным количеством аргументов
  28. Определение размера папок в Python
  29. Распаковка значений в Python
  30. Поиск уникальных и повторяющихся элементов
  31. Генераторы списков в Python
  32. Нарезка списков в Python
  33. Логические значения в Python
  34. Управление виртуальными окружениями в Python
  35. Метод eq для сравнения объектов
  36. Вычисление натуральных логарифмов в NumPy
  37. Удаление URL-адресов в Python
  38. Выборка чисел
  39. Форматирование вывода с F-строками
  40. Импорт классов из другого файла
  41. Измерение времени выполнения кода
  42. Функция count() в Python
  43. Лямбда-функции в Python
  44. Измерение времени выполнения с помощью time
  45. Работа с CSV в Python
  46. Использование метода lower()
  47. Сглаживание списка
  48. Различия символов в Python
  49. Контекстный менеджер в Python

Marketello читают маркетологи из крутых компаний