小编Dro*_*ppi的帖子

具有复杂类型提示的 Pyreverse UML(Union、List,...)

我正在尝试为使用 Unions 和 List 类型提示的类生成 UML 图。

一个例子是

from dataclasses import dataclass
from typing import Union   

@dataclass
class ClassA:
    name: str    

@dataclass
class ClassB:
    an_attribute: int    

@dataclass
class ClassC:
    my_class: Union[ClassA, ClassB]
Run Code Online (Sandbox Code Playgroud)

运行时pyreverse -ASmn stackoverflow_example.py -o png我获得一个未显示 classA 和 classB 用法的 UML:

具有三个未连接的类 A、B 和 C 的 UML 类图

如果我将代码替换ClassC

@dataclass
class ClassC:
    my_class: ClassA
Run Code Online (Sandbox Code Playgroud)

然后我得到一个更接近我的目标的 UML 描述: UML类图,有3个类A、B和C,C由A组成

但是,当然,这意味着当我分配某种类型时,我ClassBmy_class收到突出显示的警告,这正是它应该做的。我对应该如何工作的理解Union是我会得到这样的东西: 手动编辑的UML类图,有3个类A、B和C,C由A和B组成

该示例显示了 Union,但 List 和其他人也会有类似的行为。

有没有办法做到这一点,或者这是一个不应该这样做的设计?

python uml class-diagram pylint pyreverse

5
推荐指数
1
解决办法
1896
查看次数

标签 统计

class-diagram ×1

pylint ×1

pyreverse ×1

python ×1

uml ×1