Python Glossary English

все Python 3pprintфункция

pprint.saferepr()

в строку

repr() объекта, защищённый от бесконечной рекурсии: петля в списке или словаре заменяется заглушкой <Recursion on list with id=…>.

Синтаксис

text = pprint.saferepr(object)

Строк не переносит, в отличие от pformat(), — подходит для логов и сообщений об ошибке, где в данных могут быть петли. Неочевидное: ключи словарей в результате отсортированы, поэтому saferepr(d) и repr(d) отличаются. Встроенный repr списка тоже переживает петлю ([...]), но saferepr показывает, на какой объект она указывает, по его id.

Примеры

import pprint
print(pprint.saferepr({'b': 1, 'a': 2}))  # → {'a': 2, 'b': 1}
x = [1]
x.append(x)
print(pprint.saferepr(x))  # → ? [1, <Recursion on list with id=140…>] — id меняется

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности