Курс 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. Измерение времени выполнения кода
  2. Подсчет частотности элементов в Python
  3. Расчет времени выполнения
  4. Просмотр файла в Jupyter Noteboo
  5. Python OrderedDict и fromkeys() — работа с словарями
  6. Оператор обр. импликации
  7. Профилирование кода на Python
  8. Умножение строк и списков
  9. Операции с матрицами в Python
  10. Работа с изменяемыми списками
  11. Избегайте изменяемых аргументов
  12. Преобразование многоуровневого словаря
  13. Ошибка NotImplemented в Python
  14. Транспонирование 2D-массива с помощью zip
  15. Функции в Python: создание и вызов
  16. inspect в Python: анализ кода
  17. Модуль sys: основы
  18. Вывод с переменной через запятую
  19. Многострочные комментарии в Python
  20. Подсказки типов в Python
  21. Создание списка через итерацию
  22. Описание скриптов в README
  23. Поиск индекса элемента
  24. Переопределение метода divmod
  25. Создание именованных кортежей в Python
  26. Руководство по Pymorphy2
  27. Разделение списка на гнппы
  28. Преобразование Word в PDF с Spire.Doc
  29. Метод округления чисел
  30. Значения по умолчанию в Python
  31. Python 3.12: переиспользование кавычек
  32. Тестирование модели в PyTorch
  33. Удаление элемента по индексу в Python
  34. Работа с модулем Calendar
  35. Преобразование строки в число
  36. Логирование с Logzero
  37. Многострочные комментарии в Python
  38. Работа с массивами в Numpy
  39. Bootle — простой веб-фреймворк
  40. Функция map() и ленивая оценка
  41. Аннотации типов в Python
  42. Списки в Python
  43. Хеши в Python
  44. Печать месячного календаря
  45. Генераторы в Python
  46. Удаление элементов из списка

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