Ответ дали в комментариях, так что отвечу на собственный вопрос, может кому пригодится. За ответ спасибо Danis.
len(inspect.getouterframes(inspect.currentframe()))
позволяет вывести на печать текущую глубину рекурсии.
Столкнулся с проблемой рекурсии в pygame
- у меня при начале новой игры из меню (без перезапуска программы) выполняется функция mainloop()
, в которой содержится главный цикл игры. И каждый раз глубина рекурсии увеличивается примерно на 10. Примерно сотый перезапуск игры уронит её, так что проблема существенная. Тем более игры короткие, по минуте на попытку. В реальном проекте, наверное, за такое железной линейкой по пальцам бить надо, но я не стал полностью переписывать код программы, состоящей из нескольких модулей, и обошелся костылем. В функции с главным циклом добавил условие, которое увеличивает лимит рекурсии если её текущая глубина отстаёт меньше, чем на 100:
def mainloop(self):
if len(inspect.getouterframes(inspect.currentframe())) > sys.getrecursionlimit() - 100:
sys.setrecursionlimit(sys.getrecursionlimit() + 100)
Не очень красивое решение, но работает!