【问题标题】:What options are there for visualising class relationships in a Python program [closed]有哪些选项可用于在 Python 程序中可视化类关系
【发布时间】:2010-06-04 07:22:58
【问题描述】:

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

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

【问题讨论】:

标签: python uml class-design


【解决方案1】:

只要我的 2 美分。

Case tools like Enterprise Architect 可以从 python 代码生成类图,但是为了便于理解,我更喜欢手动粗略地建模类和关系。

当我想了解新代码、大致了解类之间的协作以及了解继承层次时,我也会使用 UML。

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

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

【讨论】:

    【解决方案2】:

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

    1. Komodo
    2. Pydev for eclipse

    【讨论】:

    • 你指的是Pydev代码分析吗?这对我来说看起来不像图形
    【解决方案3】:

    gaphor有导入python模块和生成uml类图的功能,反正不太好。

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

    希望带有“函数注释”的python 3能够解决这类“问题”

    【讨论】:

      【解决方案4】:

      好问题!根据您的动手能力,您可以考虑在运行代码时使用跟踪模块。

      python -m trace -T yourprogram.py
      

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

      完成后,对dot 进行一些黑客攻击,您就会得到一个图表。完成此操作后,它会写一篇很酷的博客文章,介绍您所做的事情和结果。

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

          如果是Django你也可以这样做

          ./manage.py graph_models 
          

          如果你使用的是 Django 命令扩展

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-03-26
            • 1970-01-01
            • 1970-01-01
            • 2018-10-01
            • 2014-04-18
            • 1970-01-01
            相关资源
            最近更新 更多