__repr__ должен возвращать строковое представление объекта, которое, по возможности, является валидным Python выражением, позволяющим воссоздать этот объект. Предназначен для отладки и логирования.Метод __repr__ в Python возвращает строковое представление объекта, которое должно быть однозначным и, в идеале, пригодным для воссоздания объекта. Другими словами, если возможно, результатом repr(obj) должен быть Python код, который можно выполнить, чтобы получить объект, равный исходному.
Ключевые моменты:
__repr__ - быть информативным для разработчиков. Он должен давать хорошее представление о том, что это за объект, его тип и его атрибуты.MyClass(attribute1, attribute2).__str__ не определен, то при вызове str(obj) вместо него будет использован __repr__. То есть __repr__ является запасным вариантом для __str__.Пример:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f"Point(x={self.x}, y={self.y})"
p = Point(2, 3)
print(repr(p)) # Вывод: Point(x=2, y=3)
В этом примере repr(p) возвращает строку "Point(x=2, y=3)", которую можно использовать для воссоздания объекта Point.