Перейти к содержимому

Repr python что это

  • автор:

Функция repr() в Python, описание объекта

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

Для многих типов функция возвращает строку, которая при передаче в eval() может произвести объект с тем же значением, что и исходный. В других случаях представление является строкой, обрамлённой угловыми скобками (< и >), содержащей название типа и некую дополнительную информацию, часто название объекта и его адрес в памяти.

Чтобы определить значение, возвращаемое функцией для пользовательского типа следует реализовать для этого типа специализированный метод __repr__ .

Примеры получения описания объекта.

class Person: name = 'Mike' x = Person() print(repr(x)) # # Определим метод __repr__ class Person: name = 'Mike' def __repr__(self): return repr(self.name) x = Person() print(repr(x)) # 'Mike' 
>>> x = [1, 2, 3, 4, 5, 6, 7] >>> repr(x) # '[1, 2, 3, 4, 5, 6, 7]' >>> repr('Hello') # "'Hello'" >>> x = ('a', 'b', 'c', 'd') >>> repr(x) # "('a', 'b', 'c', 'd')" >>> x = range(5) >>> repr(x) # 'range(0, 5)' >>> 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Функция abs(), абсолютное значение числа
  • Функция all(), все элементы True
  • Функция any(), хотя бы один элемент True
  • Функция ascii(), преобразует строку в ASCII
  • Функция bin(), число в двоичную строку
  • Класс bool(), логическое значение объекта
  • Функция breakpoint(), отладчик кода
  • Класс bytearray(), преобразует в массив байтов
  • Класс bytes(), преобразует в строку байтов
  • Функция callable(), проверяет можно ли вызвать объект
  • Функция chr(), число в символ Юникода
  • Класс classmethod, делает функцию методом класса
  • Функция compile() компилирует блок кода Python
  • Класс complex(), преобразует в комплексное число
  • Функция delattr(), удаляет атрибут объекта
  • Класс dict() создает словарь
  • Функция dir(), все атрибуты объекта
  • Функция divmod(), делит числа с остатком
  • Функция enumerate(), счетчик элементов последовательности
  • Функция eval(), выполняет строку-выражение с кодом
  • Функция exec(), выполняет блок кода
  • Функция filter(), фильтрует список по условию
  • Класс float(), преобразует в вещественное число
  • Функция format(), форматирует значение переменной
  • Класс frozenset(), преобразует в неизменяемое множество
  • Функция getattr(), значение атрибута по имени
  • Функция globals(), переменные глобальной области
  • Функция hasattr(), наличие атрибута объекта
  • Функция hash(), хэш-значение объекта
  • Функция help(), справка по любому объекту
  • Функция hex(), число в шестнадцатеричную строку
  • Функция id(), идентификатор объекта
  • Функция input(), ввод данных с клавиатуры
  • Класс int(), преобразует в тип int
  • Функция isinstance(), принадлежность экземпляра к классу
  • Функция issubclass(), проверяет наследование класса
  • Функция iter(), создает итератор
  • Функция len(), количество элементов объекта
  • Класс list(), преобразовывает в список
  • Функция locals(), переменные локальной области
  • Функция map(), обработка последовательности без цикла
  • Функция max(), максимальное значение элемента
  • Класс memoryview(), ссылка на буфер обмена
  • Функция min(), минимальное значение элемента
  • Функция next(), следующий элемент итератора
  • Класс object(), возвращает безликий объект
  • Функция oct(), число в восьмеричную строку
  • Функция open(), открывает файл на чтение/запись
  • Функция ord(), число символа Unicode
  • Функция pow(), возводит число в степень
  • Функция print(), печатает объект
  • Класс property(), метод класса как свойство
  • Класс range(), генерирует арифметические последовательности
  • Функция repr(), описание объекта
  • Функция reversed(), разворачивает последовательность
  • Функция round(), округляет число
  • Класс set(), создает или преобразовывает в множество
  • Функция setattr(), создает атрибут объекта
  • Класс slice(), шаблон среза
  • Функция sorted(), выполняет сортировку
  • Декоратор staticmethod(), метод класса в статический метод
  • Класс str(), преобразует объект в строку
  • Функция sum(), сумма последовательности
  • Функция super(), доступ к унаследованным методам
  • Класс tuple(), создает или преобразует в кортеж
  • Класс type(), возвращает тип объекта
  • Функция vars(), словарь переменных объекта
  • Функция zip(), объединить элементы в список кортежей
  • Функция __import__(), находит и импортирует модуль
  • Функция aiter(), создает асинхронный итератор
  • Функция anext(), следующий элемент асинхронного итератора

repr(object)

Возвращает формальное строковое представление указанного объекта.

Параметры ¶

Функция repr() принимает один параметр:

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

В других случаях представление является строкой, обрамлённой угловыми скобками (< и >), содержащей название типа и некую дополнительную информацию, часто — название объекта и его адрес в памяти.

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

  • Функция repr() возвращает формальное строковое представление указанного объекта.

Примеры ¶

class Animal(): pass
repr(Animal()) #
repr('cat-кот') # 'cat-кот'

Python с нуля. Освойте с Виртуальным ИИ-помощником!

Теоретические уроки и практические задачи
Пишите и проверяйте код прямо в браузере
Виртуальный ИИ-помощник поможет в любое время дня и ночи
Сообщество учеников для взаимопомощи и обмена опытом
200 000+ зарегистрированных участников. Присоединяйтесь!
Попробовать бесплатно
©2023 Letpy

Мы используем файлы cookie

Наш сайт использует файлы cookie для улучшения пользовательского опыта, сбора статистики и обеспечения доступа к обучающим материалам. Мы также передаем информацию об использовании вами нашего сайт партерам по социальным сетям, рекламе и аналитике. В свою очередь, наши партнеры могут объединять ее с другой предоставленной вами информацией, или с информацией, которую они собрали в результате использования вами их услуг.

Метод __repr__ в Python

Метод __repr__ в Python выдает текстовое или строковое представление сущности или объекта. Этот процесс вызывается всякий раз при вызове метода repr() для какой-то сущности. Можно сказать, что методы repr() и __repr__ взаимозаменяемы.

Функция __str__ в Python делает то же самое, но ее поведение всё же немного отличается. Она предназначена для создания удобочитаемой версии, полезной для отслеживания или отображения информации об объекте. А метод __repr__ предназначен для предоставления «официального» текстового образа объекта, который можно использовать для воссоздания этого объекта.

В этой статье мы на примерах разберем работу методов __repr__ и __str__ . Итак, давайте начнем!

Пример 1

Откройте среду разработки для Python в своей системе. Сначала мы рассмотрим простой метод repr() .

Начнем с инициализации строковой переменной, содержащей предложение в качестве значения. Функция print() используется для вывода на экран строкового значения переменной string . Для получения именно строкового значения мы воспользовались методом repr() , которому передали string в качестве аргумента.

Далее мы применили функцию repr() к математическому выражению и попробовали вывести результат через ту же функцию print() . Что ж, давайте теперь посмотрим на то, что у нас получилось:

string = 'Hy! I am John' print (repr(string)) print (repr(5.0/11.0)) # Output: # 'Hy! I am John' # 0.45454545454545453

Из полученных данных видно, что метод repr() показывает строкове представление как строки, так и результата математического выражения.

Пример 2

Давайте более подробно рассмотрим функции repr() и str() , чтобы увидеть разницу между ними. На этот раз мы применим эти методы строкового представления к функциям даты и времени.

Чтобы получить дату и время в нашем коде, мы сначала импортируем модуль DateTime с помощью ключевого слова import . Чтобы получить текущую дату и время, мы воспользуемся функцией now() с классом datetime . Также мы сохраним текущую метку времени в переменной td .

Две функции print() используются для вывода текущей даты и времени в строковом формате с использованием функций __str__() и __repr__() для объекта переменной td .

Давайте посмотрим, что у нас получилось:

import datetime td = datetime.datetime.now() print(td.__str__()) print(td.__repr__()) # Output: # 2022-01-26 08:17:46.276609 # datetime.datetime(2022, 1, 26, 8, 17, 46, 276609)

При запуске этого кода мы получили два разных строковых результата. Первый результат генерируется методом __str__ и вполне очевиден. В то время как другой генерируется с использованием метода __repr__ , и нам его довольно сложно понять.

Пример 3

И последний пример. Воспользуемся определяемым пользователем классом Test . Этот класс определяет и реализует функцию-конструктор __init__() для сохранения имени name и зарплаты salary в двух разных переменных, v1 и v2 соответственно.

Объект с именем val создается для передачи двух значений переменных name и salary в конструктор функции. Создание объекта val вызывает автоматический запуск конструктора класса Test .

Методы __str__ и __repr__ вызываются с использованием объекта val по отдельности и выводят результаты. Обе функции ничего не получили, так как объект val был только что создан. Он может реагировать не так, как мы бы хотели. Давайте проверим это:

class Test: def __init__(self, name, salary): self.v1 = name self.v2 = salary val = Test(‘John’, 50000) print(val.__str__()) print(val.__repr__()) # Output: # #

Здесь выполнение обеих функций по умолчанию совершенно бесполезно. Теперь давайте реализуем обе функции.

Итак, после конструктора __init__() внутри класса мы по отдельности реализовали оба метода __str__() и __repr__() , которые возвращают текст в строковом формате. Они также возвращают значения, присвоенные конструктору, вызывающему объект val . Давайте запустим обновленный код и посмотрим на результат:

class Test: def __init__(self, name, salary): self.v1 = name self.v2 = salary def __str__(self): return f'User name is and his/her salary is ' def __repr__(self): return f'User(name=, salary=)' val = Test('John', 50000) print(val.__str__()) print(val.__repr__()) # Output: # User name is John and his/her salary is 50000 # User(name=John, salary=50000)

Первый вывод вызван методом __str__ и вполне понятен. Другой вывод понятен, но не так хорошо, как вывод функции __str__ .

Заключение

Эта статья посвящена использованию метода __repr__ в Python. Мы также обсудили метод __str__ , используемый в этой статье для показа различий между этими двумя функциями. Думаем, это позволило вам лучше понять метод __repr__ .

Мы очень надеемся, что данная статья была вам полезна! Успехов в написании кода!

repr

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

В других случаях представление является строкой, обрамлённой угловыми скобками (< и >), содержащей название типа и некую дополнительную информацию, часто — название объекта и его адрес в памяти.

 class Animal(): pass

repr(Animal()) #
repr('cat-кот') # 'cat-кот'

На заметку

Чтобы определить значение, возвращаемое функцией для пользовательского типа следует реализовать для этого типа специализированный метод __repr__.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *