Курс 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"
- Функция product() в Python
- Функции в одну строку
- Функции all и any в Python
- Работа с множествами в Python
- Замена подстроки
- Отладка в командной строке
- Измерение потребления памяти при сортировке
- Переопределение метода __and__
- Удаление элементов по срезу
- Проверка условий в Python
- Создание списка дат
- Enum в Python: создание и использование перечислений
- Равенство и идентичность в Python
- Обратное распространение ошибки
- Разделение строки с помощью re.split()
- GitHub в Telegram: подписка на уведомления
- Переопределение метода __eq__
- Метод __ilshift__ для битового сдвига влево
- Оператор Walrus в Python 3.8
- Множественное присваивание в Python
- Пустой оператор pass в Python
- Оптимизация памяти в Python
- Профилирование кода
- Функция findall() для поиска вхождений строки
- Функции range() в Python
- Частичное совпадение ввода
- Декораторы в Python
- Наследование в программировании
- Метод join() для объединения строк
- Эффективная конкатенация строк в Python
- Обработка элементов в Python
- Ускорение обработки данных с %autoawait
- Функция reduce() в Python
- Отношения подклассов в Python
- Кортеж в Python: создание и использование
- Получение комбинаций в Python
- Создание уникального проекта
- Управление мышью и клавиатурой с Pyautogui
- Работа с очередями в Python
- Оператор «or» в Python
- Распаковка аргументов в Python
- Операции с числами в Python
- Срезы в Numpy
- Получение имени функции с помощью inspect
- Изменение объектов в Python
- Запуск асинхронной корутины















