大神帮忙看看, 这种if嵌套怎么优化。万分感谢,万分感谢,万分感谢。
直接说需求吧....
大神,其实这种写法也是可也完成业务的, 但是就是看着这么多的if感觉有点乱了, 所以请教大神,帮忙优化优化, 不写这么多if也可以完成相同的操作,
@WrYcF: 我的意思是你大体描述下需求,这么写肯定可以优化,好像是分三步取值然后干什么,具体流程是什么描述下
@北方姆Q: 大神,流程是这样的。。。
流程里 一共8个任务 任务顺序执行 其中有一个任务执行失败 整个流程失败 任务全部成功 流程才成功
@WrYcF:
#!/usr/bin/env python # -*- coding:utf8 -*- # __author__ = '北方姆Q' def worker(task_step, task_id): step_obj = Step.objects.get(task_step=task_step, task_id=int(task_id)) add_step(step_obj) # add_step还是你的原本处理函数,要有布尔返回值 return True if step_obj.status == '2' else False def func(request): # 你现在要优化的这个函数 # 这是你每一个对应的tack_step关系,虽然我不知道你是怎么对应的 t1 = (11, 12, 21, 22, 31, 32, 41, 42) task_id = request.POST.get('task_id') for index, value in enumerate(t1): ret = worker(value, task_id) if not ret: break
大体意思就是这样
@北方姆Q: 感谢大神, 万分感谢
按照你这个业务,个人觉得可以这样子优化:把上述的7个步骤写道一个事务里面去操做或者用存储过程去完成,代码不要搞这么if分支,很繁琐。