Курс 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. Конвертация изображений в PDF
  4. Работа с WindowsPath()
  5. Определение функций с необязательными аргументами
  6. Функциональное программирование.
  7. Bootle — простой веб-фреймворк
  8. Конкатенация строковых литералов
  9. Улучшение читаемости кода в Python
  10. Оператор space-invader
  11. Python: изменяемые и неизменяемые коллекции
  12. Разделение строки на подстроки в Python
  13. 9 уловок для чистого кода
  14. Обмен переменными в Jupyter
  15. Замена подстроки
  16. Повторение элементов в Python
  17. Извлечение новостей с newspaper3k
  18. Профилирование с cProfile
  19. Генераторы в Python
  20. Метод rpow в Python
  21. Транспонирование матрицы в Python
  22. Библиотека sh: использование команд bash в Python
  23. Форматирование строк в Python
  24. Управление ресурсами в Python
  25. Работа с getopt
  26. Удаление файлов с shutil.os.remove()
  27. Combobox в Tkinter
  28. Функция enumerate() — Python
  29. Метод clear для коллекций
  30. Функция reversed() в Python
  31. Поиск наиболее частого элемента в списке
  32. Big O оптимизация
  33. Измерение времени выполнения кода с использованием time
  34. Создание списка через цикл
  35. Удаление элементов из списка в Python
  36. Создание списков в Python
  37. Получение списка файлов в директории с использованием os
  38. Вывод сложных структур данных с помощью pprint
  39. Измерение времени выполнения в Python
  40. Сравнение def и lambda-функций
  41. Преобразование чисел в Python
  42. Оптимизация поиска в словарях
  43. Освоение Python
  44. Работа с исключениями в Python
  45. Экспорт функций в Python
  46. Очистка данных с помощью pandas
  47. Получение текущей даты и времени с помощью datetime

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