问题标签 [pyreverse]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python pyreverse 可以为函数生成 UML 图吗?
pyreverse是一个从 Python 代码生成 UML 图的好工具。但是,我发现它无法识别函数中使用的所有类。我举以下例子来说明我的观点:
如果我们使用 pyreverse 生成类图,很明显我们可以ClassB
看到ClassC
. 但是,它不能生成与ClassA
在其函数中使用的关系perform
。pyreverse 有什么方法可以检索 和 之间的ClassC
关系ClassA
?
python - Pyreverse 没有检测到父类是 Composite ......为什么?
假设我有以下目录结构:
__init__.py
为空白。在test.py
. 我有以下代码:
这里的想法是实现简单的一对多组合。也就是说,所有Employee
子类型也包含一个Address
实例。
然后我运行pyreverse -S -o uml.png .
生成一个 UML 类图并得到以下信息:
pyreverse
不承认Employee
和之间存在复合组件关系Address
。但是,如果我重构test.py
为以下内容:
我知道这Address
与Manager
.
这在技术上不是不正确的吗?据我了解,该关联应该与父类有关Employee
。为什么pyreverse
认为那Address
只是一个组成部分Manager
?
python - 使用绝对导入时,pyreverse 未在 UML 中显示组合关系
我在使用 生成 UML 时遇到问题pyreverse
,尤其是当类不是同一模块的一部分时以及使用绝对导入时的组合关系。
为了说明这个问题,我有以下两个模块a.py
并且b.py
在同一个包中:
a.py
:
b.py
:
当我从包的终端中运行pyreverse
命令时,我得到以下 UML。它没有显示两个类A
和之间的组合关系B
:
但是,当我在 中进行相对导入from .b import B
时a.py
,我得到了预期的结果:
在第一种情况下,似乎pyreverse
没有认识到类B
是相同的。为了解决这个问题,我尝试将包的绝对路径添加到环境变量PYTHONPATH
中。然而,这并没有解决问题。
有谁知道pyreverse
当在不同模块中定义类以及使用绝对导入时如何在 UML 中生成正确的关系?
我正在使用 python 3.8.8 和 pylint 版本 2.12.2。