Я написал тип контейнера в Python, и я пытаюсь написать надежный метод __repr__
, который правильно обрабатывает случай, когда контейнер содержит сам.
Например, вот что делает встроенный list
:
>>> x = []
>>> x.append(x)
>>> repr(x)
'[[...]]'
Типы контейнеров, написанные на C для CPython, могут достичь этой функциональности, используя Py_ReprEnter
и Py_ReprLeave
. Есть ли эквивалентная функциональность в pure-Python, или мне нужно создать свой собственный?