我继承了一个巨大的代码库,需要对其进行一些小的更改。我想知道是否有实用程序可以解析python代码并提供函数之间的依赖关系,就像我对函数进行更改一样,我想确保自己不会破坏其他函数,因此,如果我能在图表中看到它,会让我的生活更轻松。
您正在寻找的是可视化的呼叫流程。
我的经验和解决方案:
很多时候,我发现呼叫流数据不堪重负,并且图表过于复杂。所以我通常要做的是对该功能感兴趣的跟踪调用流程。
这是通过利用sys.settrace(…)函数完成的。在将调用流生成为文本数据之后,我使用graphviz生成了一个调用图。
* [http://docs.python.org/library/sys.html](http://docs.python.org/library/sys.html)
* [通话追踪](http://pyfunc.blogspot.com/2010/10/tracing-callflows-in-python.html)
* 要生成图,请使用[networkX的](http://networkx.lanl.gov/pygraphviz/)graphviz解决方案。
[编辑:基于评论]
然后,我的零散解决方案会更好。只需插入代码,然后在要跟踪的函数上使用装饰器即可。您会看到延迟出现的差距,但是可以解决。您不会直接获得完整的图片。
我一直在努力做到这一点,并发表了一些关于这种理解的文章。