Курс 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. Тип CodeType в Python.
  4. Создание словаря с значением по умолчанию
  5. Flask — веб-фреймворк Python
  6. Форматирование строк в Python.
  7. Аннотации типов в Python
  8. Пространство имен в Python
  9. Работа с файлами в Python
  10. Счетчик ссылок в Python
  11. Замена переменных в Python
  12. Лямбда-функции для min/max
  13. Непрерывная проверка в Python
  14. Методы обработки строк в Python
  15. Создание генераторов в Python
  16. Использование defaultdict в Python
  17. Инверсия списков и строк в Python
  18. Howdoi — получение ответов из терминала
  19. Функция zip() в Python
  20. Именованные кортежи в Python
  21. Работа с комплексными числами в Python
  22. Итерации в Python
  23. Проверка строки на палиндром
  24. Работа с collections в Python.
  25. Функция findall() для поиска вхождений строки
  26. Сортировка данных с лямбда-функциями
  27. Обработка ошибок ввода данных
  28. Обновление шаблона base.html
  29. Преобразование регистра символов
  30. Удаление дубликатов с помощью множеств
  31. Нахождение хеша для бесконечности и NaN в Python
  32. Обработка аргументов Python
  33. Метод rxor для операции побитового исключающего «или»
  34. Конструктор в Python
  35. Функции в одну строку
  36. Поиск самого длинного слова в списке с использованием max()
  37. Методы и функции в Python
  38. Python Аргументы по умолчанию
  39. Списковый компрехеншен.
  40. Строковое представление объектов
  41. Декоратор Ajax required
  42. Закрытие файла в Python
  43. Многопоточность в Python
  44. Метод clear для коллекций
  45. Функция reversed() в Python

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