是否有任何优雅且简单的方法来跟踪库中 Python 中的所有调用堆栈以进行调试或代码理解?
假设我正在导入一个非常大的库并且需要了解它的代码。
from xyz import tokenizer
start_call_stack_trace()
tokenizer.tokenize('Hello World', some_parameter='some_value')
stop_call_stack_trace()
现在我想获取所有带有参数值和返回值(如果可能!)的函数的列表,这些函数在调用
tokenizer.tokenize()
时在链中调用。
我想知道是否有任何优雅的方法可以快速获取它并理解 XYZ 库的代码?
我相信,你可以使用Python的内置模块 -
trace
,它可以帮助你跟踪函数调用、异常、返回、逐行执行。
例如-
import trace
tracer_call = trace.Trace(trace=1, count=1)
tracer_call.runfunc(tokenizer.tokenize('Hello World', some_parameter='some_value'))
output_res = tracer_call.results()
output_res.write_results()