- 使用match语法 (Python 3.10 及以上)
- 使用类和方法。对于复杂的逻辑,可以使用面向对象的编程,创建一个类,并将每个条件对应的方法封装在类中。
- 使用字典
def call(arg, *args, **kwargs):
task_type = arg['task_type']
# model_path = os.path.join(os.getcwd(), '../pmodel.json')
try:
if task_type == '1':
res = place_order(arg)
elif task_type == '2':
res = order_track(arg)
elif task_type == '3':
res = order_monitor(arg)
elif task_type == '4':
res = check_points(arg)
elif task_type == '5':
res = duration_query(arg)
else:
res = {"Error": "task type not found!"}
except Exception as e:
res = {"Error": str(e)}
traceback.print_exc()
return res
使用Python字典简化多重if-else分支
def call(arg, *args, **kwargs):
task_type = arg['task_type']
try:
task_mapping = {
'1': place_order,
'2': order_track,
'3': order_monitor,
'4': check_points,
'5': duration_query
}
res = task_mapping.get(task_type, lambda: {"Error": "Task type not found!"})(arg)
except Exception as e:
res = {"Error": str(e)}
return res