出于构建代码专用调试器的目的,我想跟踪代码中的某些功能,并记录每次调用中收到的参数。
我希望能够做到这一点,而无需在每个函数中添加代码行,甚至无需在所有函数周围添加装饰器,而是在整个运行过程中设置跟踪。
这有点类似于您可以在sys模块中使用sys.settrace进行的操作: https://docs.python.org/2/library/sys.html
除了据我所知,跟踪不包括函子的参数。
所以我想写一个看起来像这样的函数:
其中log_func_args将其记录在文件中以供以后分析。
然后将此函数设置为在调用我代码中的任何函数时都调用,并带有函数的名称和参数。
可以做到吗?
答案 0 :(得分:0)
好的,所以sys.settrace可以很好地完成技巧:
https://docs.python.org/2/library/sys.html#sys.settrace
和一个示例:
https://pymotw.com/2/sys/tracing.html
请注意,传递给settrace的函数必须返回对自身的引用(或对另一个函数的引用,以便在该范围内进行进一步的跟踪)。