一、冗长的elif代码如下:

if ap.is_change:
            if next_ap.name == '设备采购':
                a.state = ApplicationState.wait_goods
            elif next_ap.name == '财务审批':
                a.state = ApplicationState.finance
            elif next_ap.name == '上级审批':
                a.state = ApplicationState.pending
            elif next_ap.name == 'IT审批':
                a.state = ApplicationState.it
        else:
            if next_ap.name == '上级审批':
                a.state = ApplicationState.pending
            elif next_ap.name == '财务审批':
                a.state = ApplicationState.finance
            elif next_ap.name == '采购审批':
                a.state = ApplicationState.order
            elif next_ap.name == '付款审批':
                a.state = ApplicationState.pay
            elif next_ap.name == '管理入库':
                a.state = ApplicationState.wait_goods
            elif next_ap.name == 'IT审批':
                a.state = ApplicationState.it


二、优化代码

这种方式将根据 next_ap.name 的值从映射字典中获取对应的状态,并将其赋给 a.state,避免了冗长的多个 if 和 elif 分支。这不仅使代码更简洁,还使得将来添加或修改状态时更加容易维护。

state_mapping = {
'设备采购': ApplicationState.wait_goods,
'财务审批': ApplicationState.finance,
'上级审批': ApplicationState.pending,
'IT审批': ApplicationState.it,
'采购审批': ApplicationState.order,
'付款审批': ApplicationState.pay,
'管理入库': ApplicationState.wait_goods
}

if ap.is_change:
if next_ap.name in state_mapping:
a.state = state_mapping[next_ap.name]
else:
if next_ap.name in state_mapping:
a.state = state_mapping[next_ap.name]


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python