Мне любопытно, как работает repr
. Это не может быть точно
def repr_(x):
return x.__repr__()
так как это не работает на классах, а именно
repr_(int)
вызывает ошибку, так как представление int
ожидает объект int
в качестве первого аргумента. Я знаю, что могу настроить repr
класса, создав метакласс с желаемым __repr__
, но я хочу знать, как работает встроенный в Python repr
? И как он конкретно обрабатывает случай передачи класса в него.
Делает ли он что-то вроде try catch, где он сначала пробует то, что делает мой repr_
, а затем ищет MRO для других повторов? Или что-то другое?
repr_(3)
вместо типаint
, который не является экземпляром. - person barny   schedule 20.04.2019help(repr)
говорит следующее:For many object types, including most builtins, eval(repr(obj)) == obj.
- person wjandrea   schedule 20.04.2019