Курс 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. Измерение времени выполнения с помощью time
  3. Создание новой даты в Python
  4. Работа с файлами и директориями в Python.
  5. Перемещение и удаление файлов в Python
  6. Именование переменных в Python
  7. Работа со случайными элементами
  8. Получение комбинаций в Python
  9. Изменение логики работы с временем
  10. Любовь к Python
  11. Отношения подклассов в Python
  12. Секреты Python
  13. Оптимизация создания строк
  14. Деление в Python
  15. Enum в Python: создание и использование перечислений
  16. Асинхронное выполнение задач в процессах
  17. Codecademy в Telegram
  18. Модуль xkcd: добавление юмора в Python
  19. Метод pos в Python
  20. Форматирование вывода списков
  21. Преобразование range в итератор
  22. Основы Python за 14 дней
  23. Работа с датами в Python
  24. Объединение словарей в Python
  25. Возврат нескольких значений
  26. Сериализация данных в JSON с помощью json.dumps
  27. Генераторы списков
  28. Деление в Python
  29. Удаление ресурса в Python
  30. Извлечение чисел из текста
  31. Фильтрация списков с itertools
  32. Реализация метода __abs__ в Python
  33. Поиск анаграмм с Counter
  34. Обновление данных через PUT запрос
  35. Оценка выражений генератора в Python
  36. Рациональные числа в Python
  37. Перевод двоичного кода в целое число
  38. Хранение переменных в словаре.
  39. Переворот строки с помощью срезов
  40. Курс по дообучению ChatGPT
  41. Создание новых функций через partial
  42. Генератор надежных паролей
  43. Оператор обр. импликации
  44. Вакансии в Nebius
  45. Пустой оператор pass в Python
  46. Работа с NumPy массивами
  47. Функция findall() для поиска вхождений строки
  48. %pinfo: получение информации об объекте
  49. Работа с argparse

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