В чем разница между __repr__ и repr? - PullRequest
0 голосов
/ 09 мая 2020

Почему __repr__ работает, а repr не возвращает результат в словаре?

class Person: name = "" age = 0

def __init__(self, personName, personAge):
    self.name = personName
    self.age = personAge

def __repr__(self):
    return {'name':self.name, 'age':self.age}

p = Person ('Pankaj', 34)

print (p. __repr__ ())

print (repr (p))

OUTPUT:

{'name': 'Pankaj', 'age': 34}

Traceback (последний вызов последний):

...

print(repr(p))

TypeError: __repr__ возвращено не- строка (введите dict)

1 Ответ

0 голосов
/ 10 мая 2020

Читая ниже, я думаю, что вариант 2 возвращает объект, вариант 1 - строку.

Официальная документация Python говорит, что repr () используется для вычисления «официального» строкового представления объекта. Встроенная функция repr () использует repr () для отображения объекта. repr () возвращает представление объекта для печати, это один из возможных способов создания этого объекта.

https://www.tutorialspoint.com/What-does-the-repr-function-do-in-Python-Object-Oriented-Programming

Печать вызывает str или repr? str () отображает сегодняшнюю дату таким образом, чтобы пользователь мог понять дату и время. repr () печатает «официальное» представление объекта даты и времени (это означает, что с помощью «официального» строкового представления мы можем реконструировать объект).

https://www.geeksforgeeks.org/str-vs-repr-in-python/

...