我正在尝试为使用 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:
如果我将代码替换ClassC为
@dataclass
class ClassC:
my_class: ClassA
Run Code Online (Sandbox Code Playgroud)
但是,当然,这意味着当我分配某种类型时,我ClassB会my_class收到突出显示的警告,这正是它应该做的。我对应该如何工作的理解Union是我会得到这样的东西:

该示例显示了 Union,但 List 和其他人也会有类似的行为。
有没有办法做到这一点,或者这是一个不应该这样做的设计?