tgoop.com/PythonPortal/4559
Last Update:
Понимание __repr__
В Python __repr__
— это специальный метод, часто называемый dunder-методом (сокращение от double underscore). Его основная задача — предоставить официальное строковое представление объекта.
Проще говоря, __repr__
должен возвращать такую строку, которую, в идеале, можно вставить в интерпретатор Python, чтобы воссоздать объект.
Метод __repr__
должен быть однозначным. Он должен ясно передавать, что это за объект, и содержать достаточно информации, чтобы разработчик мог его воспроизвести.
В отличие от __str__
, который ориентирован на конечных пользователей и должен быть читаемым, __repr__
предназначен для разработчиков и должен быть точным.
В приведённом примере при вызове print()
Python сначала ищет метод str. Но так как определён только __repr__
, вызов print(student1) напрямую использует результат student1.__repr__()
, который возвращает Student('Mark', 'male')