python 追踪函数调用 2021-08-02 笔记,摘录 暂无评论 1170 次阅读 > 转自:https://gist.github.com/kgriffs/9004906 > 原文:http://blog.dscpl.com.au/2014/02/performance-overhead-of-using-decorators.html 用profile钩子,可以在所有函数的入口/出口各执行一次回调函数(tracer),以此来追踪函数的调用序列。 ```Python import sys def tracer(frame, event, arg): print(frame.f_code.co_name, event) sys.setprofile(tracer) call_something(...) ``` ## 例子 代码: ```Python import sys def tracer(frame, event, arg): print(frame.f_code.co_name, event, arg) sys.setprofile(tracer) def func1(x): print(x) def func2(x, y, z): return func1(x+y+z) def main(): func2(1,2,3) main() ``` >输出: ``` main call None func2 call None func1 call None func1 c_call 6 func1 c_return func1 return None func2 return None main return None return None ``` 标签: python 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭