我继承了一个庞大的代码库,我需要对其进行一些小改动。我想知道是否有实用程序可以解析 python 代码并给出函数之间的依赖关系,就像我对函数进行更改一样,我想确保不会破坏其他函数,所以如果我可以在图表中看到它会让我的生活更轻松。
问问题
15357 次
1 回答
31
- 通常“依赖”是为模块/包导入定义的。
您正在寻找的是可视化的呼叫流程。
你仍然不能保证你不会破坏功能:)
我的经验和解决方案:
很多时候,我发现呼叫流数据太多,图表太复杂。所以我通常做的是部分跟踪我感兴趣的函数的调用流。
这是通过使用 sys.settrace(...) 函数来完成的。在将调用流生成为文本数据后,我使用 graphviz 生成调用图。
- http://docs.python.org/library/sys.html
- 通话跟踪
- 要生成图形,请使用networkX中的 graphviz 解决方案。
[编辑:基于评论]
然后我的零碎解决方案效果更好。只需插入代码并在要跟踪的函数上使用装饰器。您会看到延迟出现的差距,但可以解决。您不会直接获得完整的图片。
我一直在努力做到这一点,并发表了一些关于这种理解的帖子。
于 2010-11-12T01:12:57.400 回答