Курс 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. F-строки в Python 3.8
  2. Распаковка значений в Python
  3. Создание и обучение модели с Keras
  4. Проверка условий: all и any
  5. Генератор списка с условием if
  6. Обязательные аргументы в Python
  7. Выборка чисел
  8. Переопределение метода divmod
  9. Метод join для наборов
  10. Переопределение метода sub
  11. Создание объекта времени
  12. Функции-генераторы в Python
  13. Аннотации типов в Python
  14. Метод invert для побитового отрицания
  15. Объединение списков в строку
  16. Частичное совпадение ввода
  17. Значения по умолчанию в Python
  18. Анонимные функции Lambda
  19. Функция zip() для объединения списков
  20. Решатель судоку на Python с pygame
  21. Конкатенация строк с join() в Python
  22. Создание и использование ChainMap
  23. Изменяемые и неизменяемые объекты
  24. Метод ifloordiv для пользовательских классов
  25. Инвертирование словаря
  26. Тип CodeType в Python.
  27. IPython и Jupyter Notebook: руководство
  28. Функция reduce() из модуля functools
  29. discard() — удаление элемента из множества
  30. Функция reduce() в Python
  31. Функции any() и all() в Python
  32. Метод сравнения объектов в Python
  33. Функция с *args.
  34. Сравнение def и lambda-функций
  35. Проверка версии Python
  36. Передача аргументов в Python
  37. Работа с изменяемыми коллекциями
  38. Генераторы в Python
  39. Измерение времени выполнения кода
  40. Работа с кортежами
  41. Поиск шаблона в начале строки
  42. Метод index() в Python
  43. Сортировка в Python
  44. Измерение времени выполнения кода
  45. Многострочные комментарии в Python
  46. Возведение в квадрат с помощью itertools

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