Python repr

10 причуд Python Программирование и разработка

Метод Python __repr__() выдает текстовое или строковое представление сущности или объекта. Этот процесс вызывается всякий раз, когда вызывается метод repr() сущности. Можно сказать, что метод «repr» и «__repr__» взаимозаменяемы для одной и той же цели. Возвращенный текст должен быть правильной фразой Python, которая будет отброшена для повторной сборки объекта, если это возможно. Функция __str__ в python делает то же самое, но между обеими функциями есть небольшая разница. Метод __str__ предназначен для создания удобочитаемой версии, полезной для отслеживания или отображения информации об объекте. С другой стороны, метод __repr__ предназначен для предоставления «официального» текстового изображения объекта, которое можно использовать для его воссоздания. Сегодня в нашей статье мы сосредоточимся на обоих ключевых методах сущностей Python. Давайте начнем с чистого листа.

Пример 1

Откройте инструмент python в вашей системе, т. е. здесь мы используем Spyder 3. Сначала мы рассмотрим простой метод repr. Мы начали наш код с инициализации строковой переменной со строковым предложением в качестве значения. Функция печати используется для печати строкового представления значения консольной переменной «string». Для этого мы воспользовались методом «repr» и взяли в нем строку в качестве аргумента. После этого мы применили функцию «repr» к некоторым математическим выражениям и попытались вывести их через ту же функцию «print». Теперь давайте посмотрим на вывод.

string = ‘Hy! I am John’
print (repr(string))
print (repr(5.0/11.0))

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

В выходных данных, показанных ниже

Пример 2

Давайте более подробно рассмотрим функции «repr» и «Str», чтобы понять разницу между ними. На этот раз мы применяли эти методы представления строк к функциям даты и времени Python. Чтобы получить дату и время в нашем коде, мы сначала импортировали модуль DateTime Python с помощью ключевого слова «import». Итак, мы должны использовать функцию «now ()» с классом DateTime в коде, чтобы получить текущую дату и время через его пакет и сохранить текущую метку времени в переменной «td». Теперь две функции печати используются для печати текущей даты и времени в строковом формате с использованием функций «__str__» и «__repr__» для объекта переменной «td». Код сохранен и готов к выполнению.

import datetime
td = datetime.datetime.now()
print(td.__str__())
print(td.__repr__())

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

Читайте также:  Функция Vector Resize () в C ++

При запуске этого кода мы получили два разных строковых результата

Пример 3

Давайте последний, но не менее важный пример этой статьи. В нашем коде мы использовали определяемый пользователем класс Test. Этот класс определяет и реализует функцию-конструктор для сохранения «имени» и «зарплаты» в двух разных переменных, v1 и v2. Объект с именем «val» создается для передачи двух значений переменных «name» и «salary» в конструктор тестовой функции. Создание объекта «val» вызывает автоматический запуск конструктора тестового класса. Методы «__str__» и «__repr__» вызываются с использованием объекта «val» по отдельности и распечаткой результатов. Обе функции ничего не получили, так как объект «Вал» был только что создан и не оценивал его. Он может не реагировать на нас так, как мы этого хотим. Давайте проверим это.

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

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

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

Итак, после конструктора внутри класса мы реализовали оба метода «__str__» и «__repr__» отдельно, возвращая строковый формат текста. Он также возвращает вызывающему потоку значения, присвоенные конструктору, т. е. объект «val». Давайте сначала сохраним недавно обновленный код Python, чтобы увидеть его результаты.

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

print(val.__repr__())

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

Другой вывод понятен, но не так хорошо, как вывод функции

Вывод

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

Оцените статью
bestprogrammer.ru
Добавить комментарий