Курс 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. Цикл while в Python
  2. Принципы программирования
  3. Проверка типов с использованием isinstance
  4. Импорт модулей и пакетов в Python
  5. Создание новых списков в Python
  6. Отладка в Python
  7. Проблема сравнения словарей
  8. Установка пакета в Python
  9. Логирование с Logzero
  10. Основные методы NumPy
  11. Роль object и type в Python
  12. Проверка индексов коллекции
  13. Списковый компрехеншен.
  14. Вложенные циклы в Python
  15. Пространство имен в Python
  16. Пересечение списков с использованием множеств
  17. Искажение имен в Python
  18. Курс по дообучению ChatGPT
  19. Фильтрация последовательности
  20. Работа с Event() в threading
  21. Хранение данных с помощью dataclasses
  22. Анализ текста на русском языке с помощью Pymystem3
  23. Monkey Patching в Python
  24. Генерация QR-кодов с библиотекой qrcode
  25. Подсказки типов в Python
  26. Срезы в Python
  27. Модуль functools в Python
  28. Операции с кортежами
  29. Преобразование числа в восьмеричную строку
  30. Замыкания в Python
  31. Порядок операций в Python
  32. Установка и использование модуля Wikipedia
  33. Форматирование объектов с модулем pprint
  34. Форматирование строк в Python.
  35. Функция zip() для объединения списков
  36. Значения по умолчанию в Python
  37. Встроенные функции Python
  38. Использование подчеркивания в REPL
  39. Настройка вывода NumPy
  40. Объединение списков с помощью zip
  41. Безопасный доступ к значениям словаря
  42. Блок else в Python

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