Python工具,为类的方法构建依赖关系图

Ano*_*ous 16 python refactoring

我正在挖掘一个庞大的遗留Python类,它有很多方法.我最终将复杂的碎片分成更小的碎片,因此方法的数量会增加更多.我想知道是否有一个工具可以扫描Python代码并为其方法构建某种依赖关系图.

如果至少调用一次,我将方法定义为方法x()的依赖项.y()x()y()

我可以使用这样的工具来隔离(如果可能的话)没有外部依赖关系的类方法的子集(它们的所有依赖关系都是来自同一子集的方法).

我打算将一些功能转移到其他类中,我认为这种方法可以帮助我决定从最初的庞大类中提取哪些部分.

编辑:我真的很喜欢命令行工具.

joc*_*oce 5

你看过Snakefood吗?看起来正是您要找的东西。

  • 我已经尝试过了,但是它适用于一组文件。我只有一个模块文件,其中包含具有许多方法的巨大类。我试过对该文件以详细模式运行snakefold,它不显示类方法之间的任何依赖关系。 (4认同)

sk.*_*sk. 2

你尝试过pydev吗?它是 eclipse 的 python 扩展。我相信它允许您使用 Eclipse 的“调用层次结构”功能来查看给定方法的调用图。这并不完全是您想要的,但也许足以开始。

  • @sk:确实如此?请告诉我们如何做。 (2认同)