在Python程序中可视化类关系有哪些选项

时间:2010-06-04 07:22:59

标签: python uml class-design

我正在维护一个Python程序,并且正在努力理解各个类之间的关系。我认为查看类如何交互的图表会很有帮助。

有哪些选项可以让我这样做?

6 个答案:

答案 0 :(得分:2)

只需2美分。

Case tools这样的{p> Enterprise Architect可以从python代码生成类图,但是为了理解,我更喜欢手工粗略地建模类和关系。

当我想了解新代码时,我也使用UML,粗略地概述了类之间的协作,并获得了继承heirachies的视图。

大多数IDE都有探索代码的方法,但我发现小的有凝聚力的UML图更容易消化和记忆。

我还发现在类图上更容易理解领域模型。

答案 1 :(得分:1)

如果您正在寻找具有该功能的IDE,那么:

  1. Komodo
  2. Pydev for eclipse

答案 2 :(得分:1)

gaphor有一个导入python模块并生成uml类图的功能,无论如何它都不太好。

无论如何,python上的代码分析工具不能很好地工作,因为没有人能够“预测”哪些参数将被函数传递(或返回)等等。他们中的大多数人“猜测”通过的类型。

希望带有“功能注释”的python 3可以解决这种“问题”

答案 3 :(得分:1)

好问题!根据您的实际操作方式,您可以考虑在运行代码时使用跟踪模块。

python -m trace -T yourprogram.py

会给你谁叫谁的信息。您可以解析此问题,也可以编写一些以编程方式使用跟踪来提取调用图的代码。

一旦完成,有点dot黑客,你就有了图表。一旦你完成了这个,就会发表一篇很酷的博客文章,介绍你做了什么以及它是如何运作的。

答案 4 :(得分:1)

结帐epydoc。它通常被认为是文档生成器,但请查看此示例中的(自动生成的)图形:

http://epydoc.sourceforge.net/api/epydoc.apidoc.RoutineDoc-class.html

答案 5 :(得分:0)

如果是Django,你也可以

./manage.py graph_models 

如果您使用的是Django Command Extenstions