Курс 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. Логирование с Logzero
  2. Функциональное программирование в Python
  3. Обработка исключений в Python
  4. Установка и использование Virtualenv
  5. Обновление множества в Python
  6. Оператор += в Python
  7. Приоритет операций в Python
  8. Удаление элементов во время итерации
  9. Курс по дообучению ChatGPT
  10. Декораторы в Python
  11. Функции-генераторы в Python
  12. Сохранение Unicode в JSON
  13. Глобальные переменные в Python
  14. Модуль itertools: комбинации и перестановки
  15. Использование defaultdict в Python
  16. Инвертирование словаря
  17. Склеивание строк через метод join()
  18. Абстракции словарей и множеств в Python
  19. Добавление элементов в список: append() vs extend()
  20. Работа с типами данных в Python с помощью pydantic.
  21. Группы исключений в Python
  22. ChainMap избыточные ключи
  23. Множественное присваивание в Python
  24. Статическая типизация в Python
  25. Копирование словарей и списков в Python
  26. Пропуск строк в файле с itertools
  27. Установка и обучение ChatterBot
  28. Модуль Operator в Python
  29. Анонимные функции в Python
  30. Поиск самого частого элемента
  31. Область видимости переменных
  32. Именованные срезы в Python
  33. Списковое включение в Python
  34. Метод rrshift для пользовательских объектов
  35. Метод bool() в Python
  36. Объединение списков в Python
  37. Работа с deque из collections
  38. Игра «Угадывание чисел»
  39. Преобразование регистра символов
  40. Combobox в Tkinter
  41. Извлечение аудио из видео
  42. Группировка элементов Python
  43. Изменение объектов в Python
  44. Анализ кода — Python
  45. Сортировка HTML-элементов
  46. Группы исключений в Python
  47. Оператор += для объединения строк

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