Курс 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. Работа с CSV файлами в Python
  2. Удаление ресурса в Python
  3. Python itertools combinations() — группировка элементов
  4. Оператор space-invader
  5. Получение текущего времени в Python
  6. Передача словаря через **kwargs
  7. Профилирование кода на Python
  8. Использование подчеркивания в REPL
  9. Преобразование символов с помощью map
  10. Замена текста в Python
  11. Метод lt для сортировки объектов
  12. Изменения в обработке логических значений
  13. Работа с модулем Calendar
  14. Импорт классов из другого файла
  15. Синхронизация потоков с time.sleep()
  16. Генераторы и сеты в Python
  17. Установка и использование pyshorteners
  18. lru_cache оптимизация функций
  19. Цикл while в Python
  20. Наиболее частотные элементы с помощью Counter
  21. Использование модуля __future__
  22. Логические операторы в Python
  23. Библиотека sh: удобные команды терминала
  24. Именованные срезы в Python
  25. Определение размера папок в Python
  26. Отрицательные индексы списков
  27. Разделение строки на пары ключ-значение.
  28. Профилирование кода
  29. Работа с кортежами в Python
  30. Переменные класса и экземпляра
  31. Получение атрибутов и методов класса
  32. Big O оптимизация
  33. Список импортированных модулей в Python
  34. Возврат нескольких значений из функции
  35. Множества и frozenset
  36. Передача неизвестных аргументов в Python.
  37. Метод get для словаря
  38. Логирование с Loguru
  39. Модуль itertools: комбинации и перестановки
  40. Парсинг статей с Newspaper3k
  41. Определение индекса элемента списка
  42. Удаление символа из строки
  43. UserString в Python
  44. Шаблоны и наследование в Flask
  45. Работа с дробями в Python
  46. Создание словарей и множеств в Python

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