В чем разница между __str__ и __repr__

Python Senior СБЕР Роботы
В чем разница между __str__ и __repr__
Ответы
Оба метода используются для строкового представления объекта, но с разными целями: `__repr__` - "официальное" строковое представление объекта, предназначенное для разработчиков. Должно быть максимально информативным и однозначным (желательно, чтобы по нему можно было воссоздать объект). Используется при вызове `repr(obj)` и в REPL. `__str__` - "неформальное" строковое представление для пользователей. Используется при вызове `str(obj)` и `print(obj)`. Пример: ``` 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) print(p) # (1, 2) - использует __str__ ``` Если `__str__` не определен, Python использует `__repr__` как fallback.