Функция Python repr()

Python3 内置函数Встроенные функции Python3


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)}")

Ожидаемый вывод:

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')

Анализ кода:

  1. Для простых строк оба дают одинаковый результат.
  2. Для datetime,repr()возвращает выражение, которое может воссоздать объект.
  3. Пользовательские классы могут соответственно определять__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()

Ожидаемый вывод:

str: hello
world
repr: 'hello\nworld'
str: She said 'hello'
repr: "She said 'hello'"

repr()Он может отображать скрытые символы (такие как символы новой строки) и кавычки, что удобно для отладки.


Python3 内置函数Встроенные функции Python3


Другие расширения