Курс 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. Обход дочерних элементов BeautifulSoup
  3. Метод clear для коллекций
  4. Метод split() в Python
  5. Удаление элементов во время итерации
  6. Транспонирование 2D-массива с помощью zip
  7. Манипуляция формой массива в Numpy
  8. Разделение строки на подстроки в Python
  9. Измерение времени выполнения в Python
  10. Concrete Paths — метод .with_suffix()
  11. Объединение коллекций в Python
  12. Основные операции с библиотекой Numpy
  13. Работа с модулем Calendar
  14. Преобразование чисел в восьмеричную строку
  15. Генераторы в Python
  16. Добавление вложенных списков
  17. Копирование файлов с shutil()
  18. Модуль os: работа с файлами и папками
  19. Базовые объекты Python
  20. Работа с argparse
  21. Принципы программирования
  22. Хешируемые ключи в Python
  23. Встроенные функции Python
  24. Именование переменных в Python
  25. Progress с библиотекой tqdm
  26. Цикл for в Python
  27. Руководство по Pymorphy2
  28. Поиск простых чисел
  29. Python OrderedDict и fromkeys() — работа с словарями
  30. Генератор данных в Keras
  31. Переворот последовательности
  32. Создание вкладок с TKinter
  33. Переопределение метода sub
  34. Преобразование текста в речь с Python
  35. Комментарии в Python
  36. Генераторы списков
  37. Работа с датой и временем в Python
  38. Метод setdefault() в Python
  39. Разрешение имен в Python
  40. Преобразование типов данных в set comprehension
  41. Сортировка с помощью key
  42. Управление импортом в Python
  43. Метод join() для объединения строк
  44. Фильтрация элементов с помощью islice
  45. Проблемы с именами переменных
  46. Работа с файлами и директориями в Python.

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