Как мне печатать функции в том виде, в каком они вызываются

При отладке сценария Python я действительно хотел бы знать весь стек вызовов для всей моей программы. Идеальной ситуацией было бы наличие флага командной строки для python, который заставлял бы Python печатать все имена функций по мере их вызова (я проверил man Python2.7 , но не нашел ничего из этого Сортировать).

Из-за большого количества функций в этом скрипте я бы предпочел не добавлять оператор печати в начало каждой функции и / или класса, если это возможно.

Промежуточным решением было бы использовать отладчик PyDev, разместить пару точек останова и проверить стек вызовов на наличие заданных точек в моей программе, поэтому я пока буду использовать этот подход.

Я все же предпочел бы видеть полный список всех функций, вызываемых на протяжении всего жизненного цикла программы, если такой метод существует.

60
задан James 29 November 2011 в 17:56
поделиться

1 ответ

Делают отрывок этой строки

import inspect;print(*['\n _^_ | {:25}| {}'.format(str(x.function), x.filename+':'+str(x.lineno)) for x in inspect.stack()])

, она покажет Вам список , стопка вызова функции с именем файла и номером строки

перечисляет от запуска туда, где Вы помещаете эту строку

0
ответ дан 4 July 2019 в 21:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: