今天看一个Python工程的代码,为了帮助理解,我决定找一下能够解析Python类之间继承关系的工具。Pycharm的Professional版本里面据说是有的,但是Professional版本是付费的。然后看了一下,VSCode的插件 PlantUML也是支持这个功能的,而且好像效果还挺不错,不过它需要搭建一个自己的PlantUML的服务器,比较懒先不用。如果以后想要更好的效果的时候可以研究一下。另一个就是这里要说的Pyreverse,Pyreverse是Pylint包中的内容,所以基本上不用安装,如果没有安装的话 pip install pylint就可以了。
这个命令依赖于graphviz,一个以dot语言为基础的图形生成工具。我在windows下是用choco安装的,也可以访问它们的官网应该有安装包。或者可以尝试是否可以pip install graphviz。
有了 graphviz 就可以使用 pyreverse直接生成类图了。
命令 pyreverse -ASmy -o png --ignore google python
这里的 --ignore google 是为了避免生成google这个第三方包里面的类。-o是指定输出的图形格式。具体的可以直接 pyreverse ,就有使用帮助的。运行之后,会在命令执行目录生成 classes 和 packages 两个文件。 最后的python是要分析的python工程的根目录。
生成效果如下(这里分析的是Python27\Lib\xml\sax 目录):