我正在维护一款Python程序,但是我很难理解各个类之间的关系。我认为看到一个展示类之间互动的图表将会很有帮助。
有哪些可用的选项可以让我做到这一点?
我正在维护一款Python程序,但是我很难理解各个类之间的关系。我认为看到一个展示类之间互动的图表将会很有帮助。
有哪些可用的选项可以让我做到这一点?
这只是我的个人看法。
类似Case工具,如Enterprise Architect可以从Python代码生成类图,但是为了更好地理解,我更喜欢手动粗略地建模类和关系。
当我想要理解新代码、获取类之间协作的粗略概述以及继承层次结构时,我也使用UML。
大多数IDE都有探索代码的方法,但我发现小而紧密的UML图更容易消化和记忆。
在类图上,我也发现领域模型更容易理解。
如果您正在寻找具有该功能的IDE,则可以考虑以下选项:
Gaphor拥有一个导入Python模块并生成UML类图的功能,但它并不是那么好用。
无论如何,在Python上进行代码分析工具并不是很好用,因为没有人能够“预测”函数将传递(或返回)哪些参数等。大多数工具只是“猜测”传递的类型。
希望Python 3的“函数注释”可以解决这种“问题”。
好问题!根据你的实际情况,你可以考虑在代码运行时使用跟踪模块。
python -m trace -T yourprogram.py
将为您提供谁打给谁的信息。您可以解析它,或编写一些代码来使用跟踪程序从中提取您的调用图。
完成后,进行一些dot黑客攻击,您就有了一个图表。完成后,您可以撰写一篇很酷的博客文章,介绍您所做的事情以及它是如何运作的。
看看epydoc。它通常被认为是一个文档生成器,但是在这个例子中,可以查看(自动生成的)图表:
http://epydoc.sourceforge.net/api/epydoc.apidoc.RoutineDoc-class.html
./manage.py graph_models