Функция Python repr()
repr()является встроенной функцией в Python, используемой для получения печатного представления объекта.
repr()Возвращает официальное строковое представление объекта, которое обычно может использоваться для воссоздания объекта. Оно отличается отstr()тем, что,repr()он больше ориентирован на отладку и разработку, тогда какstr()основное внимание уделяется удобству использования.
Определение слова: reprДаrepresentationЭто сокращение от "representation".
Базовый синтаксис и параметры
Формат синтаксиса
repr(object)
Описание параметра
- Параметр object:
- Тип: любой объект
- Описание: объект, строковое представление которого нужно получить.
Описание функций
- Возвращаемое значение: Возвращает строку, обычно строку, которая может представлять объект.
- Специальный метод: Объекты могут, определив
__repr__метод, настроить возвращаемое значение.
Примеры
Пример 1: repr() vs str()
Примеры
# Разница между строками
s = "hello"
print(f"str: '{str(s)}'") # Вывод: str: 'hello'
print(f"repr: '{repr(s)}'") # Вывод: repr: 'hello'
# Разница между объектами datetime
from datetime import datetime
dt = datetime.now()
print(f"str: {str(dt)}")
print(f"repr: {repr(dt)}")
# Разница между пользовательскими классами
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
def __repr__(self):
return f"Person(name='{self.name}')"
p = Person("Tom")
print(f"str: {str(p)}")
print(f"repr: {repr(p)}")
s = "hello"
print(f"str: '{str(s)}'") # Вывод: str: 'hello'
print(f"repr: '{repr(s)}'") # Вывод: repr: 'hello'
# Разница между объектами datetime
from datetime import datetime
dt = datetime.now()
print(f"str: {str(dt)}")
print(f"repr: {repr(dt)}")
# Разница между пользовательскими классами
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
def __repr__(self):
return f"Person(name='{self.name}')"
p = Person("Tom")
print(f"str: {str(p)}")
print(f"repr: {repr(p)}")
Ожидаемый вывод:
str: 'hello' repr: 'hello' str: 2024-01-15 10:30:45.123456 repr: datetime.datetime(2024, 1, 15, 10, 30, 45, 123456) str: Person: Tom repr: Person(name='Tom')
Анализ кода:
- Для простых строк оба дают одинаковый результат.
- Для datetime,
repr()возвращает выражение, которое может воссоздать объект. - Пользовательские классы могут соответственно определять
__str__и__repr__методы.
Пример 2: Использование repr() для отладки
Примеры
# Отображение скрытых символов
s = "hello\nworld"
print(f"str: {str(s)}")
print(f"repr: {repr(s)}")
# Отображение кавычек
text = "She said 'hello'"
print(f"str: {str(text)}")
print(f"repr: {repr(text)}")
# В интерактивной среде
# Прямой ввод имени переменной вызывает repr()
s = "hello\nworld"
print(f"str: {str(s)}")
print(f"repr: {repr(s)}")
# Отображение кавычек
text = "She said 'hello'"
print(f"str: {str(text)}")
print(f"repr: {repr(text)}")
# В интерактивной среде
# Прямой ввод имени переменной вызывает repr()
Ожидаемый вывод:
str: hello world repr: 'hello\nworld' str: She said 'hello' repr: "She said 'hello'"
repr()Он может отображать скрытые символы (такие как символы новой строки) и кавычки, что удобно для отладки.
Другие расширения
Встроенные функции Python3