repr

Функция repr() возвращает строковое представление объекта, которое может быть использовано для его однозначной идентификации. Обычно результат можно передать в eval(), чтобы восстановить объект.

Синтаксис

repr(object)

Аргументы

  • object:
    • Что означает: Объект, для которого нужно получить строковое представление.
    • Возможные значения: Любой объект в Python.

Возвращаемое значение

Возвращает строку, представляющую объект. Для строк добавляются кавычки, а специальные символы экранируются.

Примеры использования

print(repr(42))  # Вывод: '42'

print(repr("Hello"))  # Вывод: '"Hello"'

print(repr([1, 2, 3]))  # Вывод: '[1, 2, 3]'

# Пример с eval
obj = [1, 2, 3]
obj_repr = repr(obj)
restored_obj = eval(obj_repr)
print(restored_obj == obj)  # Вывод: True

Эквивалентный код

def pyplanet_repr(obj):
    if isinstance(obj, str):
        return f'"{obj}"'
    return str(obj)

Частые ошибки

  1. Использование repr как функции форматирования строки:

    print("Result: " + repr(42))  # Это работает, но лучше использовать f-строки
    

    Как исправить: Используйте f-строки: print(f"Result: {42}").

Часто задаваемые вопросы

  1. Можно ли всегда использовать eval для восстановления объектов?

    Не всегда. Если объект сложный (например, пользовательский класс), eval может не сработать без дополнительного кода.

  2. Чем repr() отличается от str()?

    repr() предназначен для отображения представления объекта для разработчиков, а str() — для пользователей.