Курс 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"
- Работа с CSV файлами в Python
- Удаление ресурса в Python
- Python itertools combinations() — группировка элементов
- Оператор space-invader
- Получение текущего времени в Python
- Передача словаря через **kwargs
- Профилирование кода на Python
- Использование подчеркивания в REPL
- Преобразование символов с помощью map
- Замена текста в Python
- Метод lt для сортировки объектов
- Изменения в обработке логических значений
- Работа с модулем Calendar
- Импорт классов из другого файла
- Синхронизация потоков с time.sleep()
- Генераторы и сеты в Python
- Установка и использование pyshorteners
- lru_cache оптимизация функций
- Цикл while в Python
- Наиболее частотные элементы с помощью Counter
- Использование модуля __future__
- Логические операторы в Python
- Библиотека sh: удобные команды терминала
- Именованные срезы в Python
- Определение размера папок в Python
- Отрицательные индексы списков
- Разделение строки на пары ключ-значение.
- Профилирование кода
- Работа с кортежами в Python
- Переменные класса и экземпляра
- Получение атрибутов и методов класса
- Big O оптимизация
- Список импортированных модулей в Python
- Возврат нескольких значений из функции
- Множества и frozenset
- Передача неизвестных аргументов в Python.
- Метод get для словаря
- Логирование с Loguru
- Модуль itertools: комбинации и перестановки
- Парсинг статей с Newspaper3k
- Определение индекса элемента списка
- Удаление символа из строки
- UserString в Python
- Шаблоны и наследование в Flask
- Работа с дробями в Python
- Создание словарей и множеств в Python















