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

如何通过type变量将多个相似Python类方法合并为一个?

合并方法实现方案

可以通过传入type参数,结合Python的getattr()函数动态获取对应属性,将三个方法合并为一个通用方法:

def getID(self, obj, type):
    # 验证type合法性,避免无效参数
    valid_types = ['input', 'output', 'operator']
    if type not in valid_types:
        raise ValueError(f"type必须是{valid_types}中的一个")
    
    # 根据type动态匹配对应的实例属性
    ids_attr = getattr(self, f"{type}IDs")
    nodes_attr = getattr(self, f"{type}Nodes")
    
    tempID = ids_attr.pop(0)
    nodes_attr[tempID] = obj
    self.objects[tempID] = obj
    return tempID

使用示例

调用时只需传入对应type参数即可替代原有方法:

  • 原getInputID(obj) → 现在用getID(obj, type='input')
  • 原getOutputID(obj) → 现在用getID(obj, type='output')
  • 原getOperatorID(obj) → 现在用getID(obj, type='operator')

关键逻辑说明

  1. 参数校验:提前限制type的可选值,避免因错误参数导致属性查找失败
  2. 动态属性获取:通过getattr()根据type拼接属性名,自动匹配对应的xxxIDs和xxxNodes,省去重复的属性调用代码
  3. 核心逻辑复用:三个方法的核心操作(取ID、绑定节点、绑定对象、返回ID)完全一致,统一放在通用方法中执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:31:03