все Python 3ООПфункция
__repr__
магические методы
Метод, который вызывают repr(obj) и консоль: однозначное представление объекта для разработчика.
Синтаксис
def __repr__(self) -> str: ...
Хороший __repr__ похож на выражение, которым объект можно создать заново: Point(1, 2). Он же служит запасным __str__, поэтому определяют его в первую очередь. Встроенная заглушка выводит <__main__.Point object at 0x…> — ни отладке, ни логам от неё пользы нет.
Примеры
class Point:
def __init__(self, x, y):
self.x, self.y = x, y
def __repr__(self):
return f'Point({self.x!r}, {self.y!r})'
p = Point(1, 2)
print(repr(p)) # → Point(1, 2)
print(p) # → Point(1, 2) — __str__ нет, взят __repr__
print(f'{p!r}') # → Point(1, 2)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности