小编GsB*_*GsB的帖子

使用绝对导入时,pyreverse 不会在 UML 中显示组合关系

我在使用 生成 UML 时遇到问题pyreverse,特别是当类不属于同一模块时以及使用绝对导入时,对于组合关系。

为了说明问题,我有以下两个模块a.py并且b.py位于同一个包中:

a.py:

from b import B


class A:
    def __init__(self, b):
        self.b: B = b
Run Code Online (Sandbox Code Playgroud)

b.py:

class B:
    pass
Run Code Online (Sandbox Code Playgroud)

pyreverse当我在终端中从包运行命令时,我得到以下 UML。它没有显示两个类A和之间的组成关系B

在此输入图像描述

from .b import B但是,当我在 中进行相对导入时a.py,我得到了预期的结果:

在此输入图像描述

似乎pyreverse在第一种情况下不认识到类B是相同的。为了解决这个问题,我尝试将包的绝对路径添加到环境变量中PYTHONPATH。然而,这并没有解决问题。

有谁知道当类在不同模块中定义时以及使用绝对导入时如何pyreverse在 UML 中生成正确的关系?

我正在使用 python 3.8.8 和 pylint 版本 2.12.2。

python uml pyreverse

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

标签 统计

pyreverse ×1

python ×1

uml ×1