Курс 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.
- Поиск подстроки в строке
- Обработка исключений в Python 3
- Работа с библиотекой xkcd
- Выход из профиля в Django
- Расширение информации об ошибке в Python
- Итерация по итерируемым объектам
- Функция eval() в Python
- Распаковка элементов последовательности
- Ограничение итераций в Python
- Аннотации типов в Python
- Управление асинхронными задачами с помощью Semaphore
- Вложенные циклы в Python
- Преобразование range в итератор
- Удаление элемента из списка
- Python и Монти Пайтон
- Лямбда-функции для min/max
- Замена атрибута в именованном кортеже
- Цепные операции в Python
- Перетасовка списков в Python
- Логический оператор «and» в Python
- Решатель судоку на Python с pygame
- Бесконечные списки в Python
- Генераторы в Python
- Мощь вложенных функций в Python
- Логические значения в Python
- Бинарный поиск
- Декоратор @override
- Метод __getitem__ в Python
- Изменение списка срезами
- Управление User-Agent в Python
- Управление асинхронными задачами на Python.
- Оператор walrus в Python
- Удаление элементов из списка в Python
- Роль object и type в Python
- Генераторы списков
- Декораторы в Python
- Встраивание HTML в Jupyter Notebook
- Закрытие файла в Python
- Итерация по копии коллекции
- Поиск наиболее частого элемента списке
- Установка Git и AWS CLI
- Обработка ошибок в Python
- Оператор assert в Python
- Обход элементов в Python
- Работа с enumerate()
- Установка Python — Простое руководство
- Запрос DELETE с библиотекой requests
- Работа с контекстными переменными















