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

9

我正在维护一款Python程序,但是我很难理解各个类之间的关系。我认为看到一个展示类之间互动的图表将会很有帮助。

有哪些可用的选项可以让我做到这一点?


这个问题在另一个SO帖子上有另一种解决方案: https://dev59.com/23VC5IYBdhLWcg3wixs0 - Carlos A. Wong
1
这个回答解决了你的问题吗?从Python源代码生成UML图的最佳方法是什么? - bad_coder
6个回答

3

这只是我的个人看法。

类似Case工具,如Enterprise Architect可以从Python代码生成类图,但是为了更好地理解,我更喜欢手动粗略地建模类和关系。

当我想要理解新代码、获取类之间协作的粗略概述以及继承层次结构时,我也使用UML。

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

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


1

2
你是在指Pydev代码分析吗?这对我来说看起来不是图形化的。 - David Sykes

1

Gaphor拥有一个导入Python模块并生成UML类图的功能,但它并不是那么好用。

无论如何,在Python上进行代码分析工具并不是很好用,因为没有人能够“预测”函数将传递(或返回)哪些参数等。大多数工具只是“猜测”传递的类型。

希望Python 3的“函数注释”可以解决这种“问题”。


1

好问题!根据你的实际情况,你可以考虑在代码运行时使用跟踪模块。

python -m trace -T yourprogram.py

将为您提供谁打给谁的信息。您可以解析它,或编写一些代码来使用跟踪程序从中提取您的调用图。

完成后,进行一些dot黑客攻击,您就有了一个图表。完成后,您可以撰写一篇很酷的博客文章,介绍您所做的事情以及它是如何运作的。


1

0
如果是Django,你也可以这样做。
./manage.py graph_models 

如果您正在使用Django命令扩展。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接