pyreverse生成UML类图时类型提示引发类成员重复的解决办法咨询
解决pyreverse生成UML类图时成员重复的问题
当你用类级变量做实例变量的类型提示(PEP 526推荐方式),同时在__init__中初始化这些变量时,pyreverse会同时识别类级注解和__init__里的实例赋值,导致UML类图中出现重复成员。
针对这个问题,有以下几种可行的解决方法:
方法1:升级pylint(推荐)
pyreverse是pylint的子工具,较新版本的pylint(2.14及以上)已经支持正确识别PEP 526的类级别实例变量注解,不会重复生成成员。直接升级pylint即可:
pip install --upgrade pylint
方法2:使用命令行参数过滤
如果暂时无法升级,可通过命令行参数让pyreverse只保留类级别的属性注解:
- 使用
--filter-mode CLASS参数,仅显示类级属性:pyreverse --filter-mode CLASS your_module.py - 或者使用
--no-instance-attributes参数,隐藏从__init__中识别的实例属性:pyreverse --no-instance-attributes your_module.py
方法3:配置文件永久生效
在项目根目录创建pyreverse.cfg或.pylintrc文件,添加以下配置,后续运行pyreverse会自动应用规则:
[pyreverse] filter_mode = CLASS
内容的提问来源于stack exchange,提问作者ira7bar
相关产品推荐
相关产品推荐

