Курс 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. Метод split() в Python
  3. Возврат нескольких значений
  4. Сортировка HTML-элементов
  5. Распаковка элементов массива
  6. Работа со строками в Python
  7. Роль ключевого слова self
  8. Справка по импортированным модулям
  9. Порядок операций в Python
  10. Метод join() для объединения строк
  11. Создание новых списков в Python
  12. Работа с deque в Python
  13. Анонимные функции в Python
  14. Декораторы в Python
  15. Управление доступом к модулю
  16. Обработка исключений с блоком else
  17. Перегрузка операторов в Python
  18. Хранение переменных в словаре.
  19. Метод hash в Python
  20. Создание тестовых данных с Faker
  21. Установка и использование pyshorteners
  22. Делегирование в Python
  23. Декодирование строк в Python
  24. Атрибуты класса и экземпляра в Python
  25. Отладчик pdb: начало работы
  26. Подсказки при вводе данных в Python
  27. Декоратор Property в Python
  28. Генерация резюме в Gensim
  29. Поиск индекса элемента в списке
  30. Транспонирование матрицы в Python
  31. Работа с временем в Python
  32. Операция += для списков
  33. Форматирование строк в Python
  34. Метод join() для объединения элементов строки
  35. Генераторы в Python
  36. Запуск Python из интерпретатора
  37. Оптимизация гиперпараметров в Python
  38. Метод Event.wait() в Python
  39. Атрибуты массивов в Numpy
  40. Оператор «is not» в Python
  41. Модуль Antigravity в Python 3
  42. Виртуальное окружение Python
  43. Bootle — простой веб-фреймворк
  44. Обновление ключей в Python
  45. Проверка подстроки в строке с помощью in
  46. Итерация по коллекции в Python
  47. Срезы в Python

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