Курс 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. Функция product() в Python
  2. Функции в одну строку
  3. Функции all и any в Python
  4. Работа с множествами в Python
  5. Замена подстроки
  6. Отладка в командной строке
  7. Измерение потребления памяти при сортировке
  8. Переопределение метода __and__
  9. Удаление элементов по срезу
  10. Проверка условий в Python
  11. Создание списка дат
  12. Enum в Python: создание и использование перечислений
  13. Равенство и идентичность в Python
  14. Обратное распространение ошибки
  15. Разделение строки с помощью re.split()
  16. GitHub в Telegram: подписка на уведомления
  17. Переопределение метода __eq__
  18. Метод __ilshift__ для битового сдвига влево
  19. Оператор Walrus в Python 3.8
  20. Множественное присваивание в Python
  21. Пустой оператор pass в Python
  22. Оптимизация памяти в Python
  23. Профилирование кода
  24. Функция findall() для поиска вхождений строки
  25. Функции range() в Python
  26. Частичное совпадение ввода
  27. Декораторы в Python
  28. Наследование в программировании
  29. Метод join() для объединения строк
  30. Эффективная конкатенация строк в Python
  31. Обработка элементов в Python
  32. Ускорение обработки данных с %autoawait
  33. Функция reduce() в Python
  34. Отношения подклассов в Python
  35. Кортеж в Python: создание и использование
  36. Получение комбинаций в Python
  37. Создание уникального проекта
  38. Управление мышью и клавиатурой с Pyautogui
  39. Работа с очередями в Python
  40. Оператор «or» в Python
  41. Распаковка аргументов в Python
  42. Операции с числами в Python
  43. Срезы в Numpy
  44. Получение имени функции с помощью inspect
  45. Изменение объектов в Python
  46. Запуск асинхронной корутины

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