Курс 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. Обработка исключений в Python 3
  4. Работа с библиотекой xkcd
  5. Выход из профиля в Django
  6. Расширение информации об ошибке в Python
  7. Итерация по итерируемым объектам
  8. Функция eval() в Python
  9. Распаковка элементов последовательности
  10. Ограничение итераций в Python
  11. Аннотации типов в Python
  12. Управление асинхронными задачами с помощью Semaphore
  13. Вложенные циклы в Python
  14. Преобразование range в итератор
  15. Удаление элемента из списка
  16. Python и Монти Пайтон
  17. Лямбда-функции для min/max
  18. Замена атрибута в именованном кортеже
  19. Цепные операции в Python
  20. Перетасовка списков в Python
  21. Логический оператор «and» в Python
  22. Решатель судоку на Python с pygame
  23. Бесконечные списки в Python
  24. Генераторы в Python
  25. Мощь вложенных функций в Python
  26. Логические значения в Python
  27. Бинарный поиск
  28. Декоратор @override
  29. Метод __getitem__ в Python
  30. Изменение списка срезами
  31. Управление User-Agent в Python
  32. Управление асинхронными задачами на Python.
  33. Оператор walrus в Python
  34. Удаление элементов из списка в Python
  35. Роль object и type в Python
  36. Генераторы списков
  37. Декораторы в Python
  38. Встраивание HTML в Jupyter Notebook
  39. Закрытие файла в Python
  40. Итерация по копии коллекции
  41. Поиск наиболее частого элемента списке
  42. Установка Git и AWS CLI
  43. Обработка ошибок в Python
  44. Оператор assert в Python
  45. Обход элементов в Python
  46. Работа с enumerate()
  47. Установка Python — Простое руководство
  48. Запрос DELETE с библиотекой requests
  49. Работа с контекстными переменными

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