Метод repr() возвращает печатное представление объекта. Здесь obj — это объект, печатное представление которого должно быть напечатано.

Что такое repr() в Python?
Python repr() — это встроенная функция, которая возвращает печатное представление данного объекта. Он возвращает строку, которая вернет объект с тем же значением при передаче в eval().
См. следующий синтаксис.
|
1 |
repr(obj) |
Здесь obj — это объект, печатное представление которого должно быть напечатано.
См. следующий пример.
|
1 2 3 4 5 |
# app.py data = 'foo' print(repr(data)) |
Выход:
|
1 2 3 |
➜ pyt python3 app.py 'foo' ➜ pyt |
Видите, мы получили тот же результат, что и строка. Это печатное представление данного объекта.
Работа функции repr()
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 |
# app.py # Declaring two variables name = "Appdividend" msg = "Welcome to Appdividend" # Now we will print those variable(objects) # Using repr() print(repr(name)) print(repr(msg)) |
Выход:
|
1 2 3 4 |
➜ pyt python3 app.py 'Appdividend' 'Welcome to Appdividend' ➜ pyt |
Здесь мы присваиваем значение «Appdividend» для имени и «Welcome to Appdividend» для msg.
Метод Python repr() возвращает «Appdividend», «Appdividend» в двойных кавычках и «Welcome to Appdividend», «Welcome to Appdividend» в двойных кавычках.
Мы присвоили две строки двум переменным name и msg . Теперь мы вызвали метод repr(). В поле вывода мы видим, что вывод заключен в одинарную кавычку( ‘ ‘ ). Это связано с тем, что name и msg являются переменными строкового типа, а repr() сама возвращает строковую переменную.
Реализация repr() для пользовательских объектов
Смотрите следующую программу.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# app.py class Student: name = "Debasis" # Defining repr of custom object def __repr__(self): return repr(self.name) # Calling class object print(repr(Student())) |
Выход:
|
1 2 3 |
➜ pyt python3 app.py 'Debasis' ➜ pyt |
В этом примере мы видим, что мы создали класс с именем Student и имя переменной класса. Затем мы переопределили метод __repr__(), чтобы мы могли быстро вызывать метод repr() вне класса.
Сравнение repr и str
Python str() и repr() используются для получения строкового представления объекта. Python str() используется для создания вывода для конечного пользователя, а repr() используется в основном для отладки и разработки.
Функция repr() должна быть однозначной, а функция str — читаемой. Например, если мы подозреваем, что число с плавающей запятой имеет небольшую ошибку округления, repr покажет нам, а str — нет.
Функция repr() вычисляет «официальное» строковое представление объекта (иллюстрация, содержащая всю информацию об объекте), а функция str() используется для вычисления «неофициального» строкового представления объекта (представление, полезное для печать объекта).
Оператор print и встроенная функция str() используют __str__ для отображения строкового представления объекта, а встроенная функция repr() использует __repr__ для отображения объекта.
