一、冗长的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 |