Курс 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"
- F-строки в Python 3.8
- Распаковка значений в Python
- Создание и обучение модели с Keras
- Проверка условий: all и any
- Генератор списка с условием if
- Обязательные аргументы в Python
- Выборка чисел
- Переопределение метода divmod
- Метод join для наборов
- Переопределение метода sub
- Создание объекта времени
- Функции-генераторы в Python
- Аннотации типов в Python
- Метод invert для побитового отрицания
- Объединение списков в строку
- Частичное совпадение ввода
- Значения по умолчанию в Python
- Анонимные функции Lambda
- Функция zip() для объединения списков
- Решатель судоку на Python с pygame
- Конкатенация строк с join() в Python
- Создание и использование ChainMap
- Изменяемые и неизменяемые объекты
- Метод ifloordiv для пользовательских классов
- Инвертирование словаря
- Тип CodeType в Python.
- IPython и Jupyter Notebook: руководство
- Функция reduce() из модуля functools
- discard() — удаление элемента из множества
- Функция reduce() в Python
- Функции any() и all() в Python
- Метод сравнения объектов в Python
- Функция с *args.
- Сравнение def и lambda-функций
- Проверка версии Python
- Передача аргументов в Python
- Работа с изменяемыми коллекциями
- Генераторы в Python
- Измерение времени выполнения кода
- Работа с кортежами
- Поиск шаблона в начале строки
- Метод index() в Python
- Сортировка в Python
- Измерение времени выполнения кода
- Многострочные комментарии в Python
- Возведение в квадрат с помощью itertools















