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