You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python pyreverse能否识别函数内使用的类并生成对应UML关联关系?

pyreverse默认仅采集类实例属性绑定的关联类,你示例中ClassC的__init__方法里将ClassB实例绑定到了self.object_b,属于类的成员属性关联,会被直接识别;而perform方法内的object_a是方法局部变量,没有绑定到类实例上,默认不会被判定为ClassC的关联类。

你可以通过以下几种方式实现需求:

  • 开启全量关联分析参数
    执行生成命令时添加-A参数,即可开启所有关联的识别逻辑,包含类方法内部局部变量实例化的类:
    pyreverse -o png -A 你的模块文件名.py
    
    执行后生成的类图会自动添加ClassC到ClassA的依赖关联线。
  • 给局部变量添加显式类型标注
    针对Python3.6及以上版本,给方法内的局部变量加上类类型标注,pyreverse也可以识别到关联关系:
    class ClassC(object):
      def __init__(self):
        self.object_b = ClassB() 
      def perform(self):
        # 显式标注变量类型
        object_a: ClassA = ClassA()
    
  • 手动添加强制关联标记
    如果需要固定展示关联不受代码改动影响,可以在类定义上方添加pyreverse可识别的依赖注释标记:
    # @depends ClassA
    class ClassC(object):
      def __init__(self):
        self.object_b = ClassB() 
      def perform(self):
        object_a = ClassA()
    

内容的提问来源于stack exchange,提问作者feelfree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:15:03