我有一个大型的多文件Python应用程序,我想以图形方式进行文档记录.但首先,我制作了一个小的"虚拟"应用程序来测试不同的UML包.(注意:我确实安装了graph viz并在路径中).

这是我的"哑巴"代码:

class User:
def __init__(self, level_security=0):
    self.level_security = level_security

def level_security_increment(level_security):
    level_security += 1
    return level_security

def printNice(aValue):
    if type(aValue) != "str":
        print(str(aValue))
    else:
        print(aValue)
    return

def main():
printNice("Process start")

for x in range(0,9):
    printNice(x)

myUser = User(3)
printNice(f"Sec lvl: {myUser.level_security}")

printNice("Process_done")

if __name__ == "__main__":
    main()

下面是我用来获得不同图表的不同的pyverse命令行代码.我将把最接近我想要的图表贴在这些代码下面:

pyreverse test.py -S -m y -A -o png
pyreverse -ASmn test.py -b -o vdx
pyreverse -ASmy test.py -o emf
pyreverse -AS -m y test.py -o emf
pyreverse -p test.py -o emf
pyreverse -AS -b test.py -o emf
pyreverse -ASmy test.py -b -o png <-- closest

Now here is what that last one you see above produces: enter image description here

最后,如果不清楚,我将重申我要表明的want点: 类、定义(函数)和变量(如果可能的话).但我现在很高兴只得到类和定义(函数).需要说明的是:我希望看到函数名称.

这是否与向pyverse命令添加/删除switch 一样简单?或者有什么包需要添加到我的"虚拟"代码中吗?

推荐答案

PYREVER的目标是生成一个类图.它将向您显示类和未过滤的类成员(请参见选项-f),以及可以检测到的关联.在这方面,图表似乎是完整的.

顶层的实例(对象)不是类图的一部分.这就是为什么PYREVER没有展示它们的原因.

独立函数也不会出现在类关系图中,因为它们不是类.对于what a free standing function should be in UML人,人们并没有达成共识.它们可以被视为更通用的函数类的实例(具有相同签名的所有函数的实例),或者它们可以被视为特定的函数类.因为没有定义任何UML规则,所以pyrete也不会显示它们.如果你想让PYREVER检测到它们,你应该使用rewrite them as a functor class.

Python相关问答推荐

python中csv. Dictreader. fieldname的类型是什么?'

Pandas—MultiIndex Resample—我不想丢失其他索引的信息´

如何将一组组合框重置回无 Select tkinter?

使用python playwright从 Select 子菜单中 Select 值

如何在Python中自动创建数字文件夹和正在进行的文件夹?

Django.core.exceptions.SynchronousOnlyOperation您不能从异步上下文中调用它-请使用线程或SYNC_TO_ASYNC

基于2级列表的Pandas 切片3级多索引

搜索结果未显示.我的URL选项卡显示:http://127.0.0.1:8000/search?";,而不是这个:";http://127.0.0.1:8000/search?q=name";

如何判断特定的OPC UA node 是否已经存在Asyncua?

从pandas框架中删除重复的子框架

如何获得症状表达式的真实部分?

我如何区分PyTorch张量和嵌套张量?

Pandas 滚动着进化的windows

获取Python中的层次 struct 数据

从html获取元素时出现问题

如何在Python中验证邮箱DKIM签名?

压平JSON后的Pandas 保留柱

Discord.py按钮后出现的 Select 菜单

WinError 193%1不是有效的Win32应用程序.AZ二头肌

Shopware 6 REST-API产品更新不起作用