Sobes.tech
Назад к вопросам
Middle
1

Чем отличается метод repr от str в Python?

Компании, где спрашивали
RadLab

Ответ от нейросети

sobes.tech AI

Методы __repr__ и __str__ в Python служат для получения строкового представления объекта, но с разными целями:

  • __repr__ предназначен для получения официального строкового представления объекта, которое должно быть максимально информативным и, по возможности, таким, чтобы его можно было использовать для воссоздания объекта (например, в интерактивной консоли). Если это невозможно, возвращается строка с полезной информацией.

  • __str__ предназначен для получения удобочитаемого, понятного пользователю представления объекта, которое используется функцией print() и функцией str().

Если __str__ не определён, Python использует __repr__ как запасной вариант.

Пример:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __repr__(self):
        return f"Point({self.x}, {self.y})"

    def __str__(self):
        return f"({self.x}, {self.y})"

p = Point(1, 2)
print(repr(p))  # Выведет: Point(1, 2)
print(str(p))   # Выведет: (1, 2)

Таким образом, repr ориентирован на разработчиков и отладку, а str — на конечных пользователей.