python: отследить вызов функций по имени
подскажите, как в питоне можно зная имя функции понять сколько раз ее вызвали
т.е. есть некоторый, недоступный для пользователя код (обёрнутый в вызов функции) внутри которого вызывается функция с именем func_name
по идее (как я понимаю), надо получить доступ к стеку вызовов функций и просто подсчитать сколько раз встречается нужный мне вызов, т.е. что-то такое (в псевдокоде):
stack_start()
func()
arr = stack_stop()
count = len(i for i in arr if i == func_name
но как это реализовать на практике?
как понимаю надо смотреть в сторону библиотеки inspect?
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
через settrace все можно сделать
from sys import settrace
def tracer(frame, event, arg=None):
if event == "call":
# тут делаем что хотим с функциями frame.f_code.co_name
return tracer
settrace(tracer)