【问题标题】:class diagram viewer application for python3 sourcepython3源的类图查看器应用程序
【发布时间】:2016-04-05 16:58:09
【问题描述】:

是否有任何应用程序可以从 python3 源代码生成类似于以下链接的内容(我不在乎表示,而是在乎完美的内容)

http://www.codeproject.com/KB/IP/Searcharoo_3/ClassDiagram.png

【问题讨论】:

    标签: python python-3.x class class-diagram


    【解决方案1】:

    是的,有:pylintpyreverse 一起生成类图(恐怕不如参考中的那个漂亮,但清晰有用。)graphviz 存在依赖关系。

    从命令行:

    分析整个或部分包

    $ pyreverse -o png -p <project name>
    

    分析一个特定文件:

    $ pyreverse -o png -p myproject \path\to\myproject\myfile.py 
    

    示例输出:类图

    示例输出:包

    【讨论】:

    • 是否可以给出一个特定的文件而不是
    • 我认为是; &lt;project name&gt; 指的是包含项目的文件夹/包,但是如果替换为特定的 &lt;filename.py&gt; 应该可以工作。我链接到答案中的文档。
    • 还是感谢您的回答...找到了我需要的东西:pyreverse -o png -p myproject \path\to\myproject\myfile.py
    • 太好了,谢谢。我将此说明添加到答案中。
    【解决方案2】:

    我发现接受的答案违反了最小意外原则:)

    鉴于当前目录包含 python 文件以及子目录中的源代码,运行 pyreverse -o png -p py_test . 意味着 Pylint 选择了 __init__.py,然后继续创建 r:\apps\python3\lib\encodings\ 的 UML 图。

    使用 pyreverse -o png -p py_test ./main.py 生成一个空白 PNG,因为该源文件中没有定义任何类。

    但是,pyreverse -o png -p py_subdir ./py_subdir确实得到了一些合理的结果。它为子目录中的所有代码生成了类图和包图。有点反直觉。

    【讨论】:

    • 在这种情况下 py_test 代表什么?
    【解决方案3】:

    Pynsource 是一个具有免费社区版的开源项目: https://pynsource.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多