Курс 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"
- Измерение времени выполнения кода
- Подсчет частотности элементов в Python
- Расчет времени выполнения
- Просмотр файла в Jupyter Noteboo
- Python OrderedDict и fromkeys() — работа с словарями
- Оператор обр. импликации
- Профилирование кода на Python
- Умножение строк и списков
- Операции с матрицами в Python
- Работа с изменяемыми списками
- Избегайте изменяемых аргументов
- Преобразование многоуровневого словаря
- Ошибка NotImplemented в Python
- Транспонирование 2D-массива с помощью zip
- Функции в Python: создание и вызов
- inspect в Python: анализ кода
- Модуль sys: основы
- Вывод с переменной через запятую
- Многострочные комментарии в Python
- Подсказки типов в Python
- Создание списка через итерацию
- Описание скриптов в README
- Поиск индекса элемента
- Переопределение метода divmod
- Создание именованных кортежей в Python
- Руководство по Pymorphy2
- Разделение списка на гнппы
- Преобразование Word в PDF с Spire.Doc
- Метод округления чисел
- Значения по умолчанию в Python
- Python 3.12: переиспользование кавычек
- Тестирование модели в PyTorch
- Удаление элемента по индексу в Python
- Работа с модулем Calendar
- Преобразование строки в число
- Логирование с Logzero
- Многострочные комментарии в Python
- Работа с массивами в Numpy
- Bootle — простой веб-фреймворк
- Функция map() и ленивая оценка
- Аннотации типов в Python
- Списки в Python
- Хеши в Python
- Печать месячного календаря
- Генераторы в Python
- Удаление элементов из списка















