Курс 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. Именованные кортежи в Python
  3. Списки в Python: синтаксис представления
  4. Поиск наиболее частого элемента в списке
  5. Генерация тестовых данных с factory_boy
  6. Проверка окончания строки с помощью str.endswith()
  7. Транспонирование матрицы в Python
  8. Конкатенация строковых литералов
  9. Измерение времени выполнения кода с использованием time
  10. Изменение IP-адреса в Python
  11. Переворот строки
  12. Лямбда-функции в Python
  13. Объединение словарей в Python
  14. Функциональное программирование в Python
  15. Метод pos в Python
  16. Создание новых функций с помощью functools.partial
  17. Избегайте двойного подчеркивания
  18. Получение пути к текущему скрипту с помощью os
  19. Сохранение Unicode в JSON
  20. Оператор zip в Python
  21. Основные функции и модули Python
  22. Получение текущей директории
  23. Работа с контекстными менеджерами
  24. Метод invert для побитового отрицания
  25. Замена элементов в списке с помощью генераторов списков
  26. Метод Event.wait() в Python
  27. Функция enumerate в Python
  28. Разделение строки с помощью split()
  29. Работа с многоуровневыми словарями в Python
  30. Циклы в Python
  31. Combobox в Tkinter
  32. Вычисление фазы комплексного числа
  33. Библиотека Emoji: использование смайлов в Python
  34. Многострочные комментарии в Python
  35. Установка максимального количества цифр
  36. Конкатенация строк с методом join()
  37. Сортировка в Python
  38. Названия столбцов в Python таблицах
  39. Управление сессиями в Python
  40. Инверсия списка и строки в Python
  41. Конкатенация списков в Python
  42. Извлечение аудио из видео
  43. Работа с дробями в Python
  44. Реверс строки и списка в Python.
  45. Именование столбцов в Python с pandas

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