Курс 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. Работа с множествами в Python
  2. Измерение времени выполнения кода
  3. Работа с YAML в Python
  4. Обратное распространение ошибки
  5. Ключевое слово global в Python
  6. Получение размера объекта с sys.getsizeof()
  7. Генераторы в Python
  8. Циклы for в Python
  9. Функции map, filter, reduce
  10. Регистрация на курсы SF Education
  11. Генерация QR-кодов с библиотекой qrcode
  12. Конкатенация списков в Python
  13. Проверка надежности пароля на Python
  14. Порядок операций в Python
  15. Оператор распаковки в Python
  16. Простой калькулятор Python
  17. Разделение строк в Python
  18. Генераторы списков в Python
  19. TON Smart Challenge #2: участие и подготовка
  20. Работа с классами данных
  21. Резервирование символов в Python
  22. Упрощение условных выражений с тернарным оператором
  23. Перевод эмодзи и эмотиконов.
  24. Работа с defaultdictами в Python
  25. Бесконечная проверка в Python
  26. Работа с пакетами
  27. Разница между датами
  28. Управление контекстом с помощью декоратора contextmanager
  29. Создание Telegram-бота на Python
  30. Управление доступом к модулю
  31. Метод append() для списка
  32. Ускорение выполнения кода в Python
  33. Удаление элементов во время итерации
  34. Нан-рефлексивность в Python
  35. Функция enumerate в Python
  36. Работа с срезами в Numpy
  37. Логирование с Logzero
  38. Вложенные функции в Python
  39. Метод join для объединения строк
  40. Извлечение аудио из видео
  41. Автоматизация действий с Pyautogui
  42. Удаление дубликатов из списка с помощью dict.fromkeys
  43. Склеивание строк без циклов
  44. Создание словарей и множеств в Python.
  45. Принципы LSP и ISP в Python
  46. Декораторы для регистрации функций

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