如何进行子开关和主开关的逻辑优化

2016 年 9 月 2 日
 264768502

以下代码 main_swit

if kwarg.get('sub_switch'): 
    do()
    del kwarg['sub_switch']
elif kwarg.get('sub_switch') is False:
    del kwarg['sub_switch']
elif kwarg.get('sub_switch') is None and main_switch:
    do()

这样的逻辑有没有可以优化的余地?

2913 次点击
所在节点    Python
6 条回复
BOYPT
2016 年 9 月 2 日
写到这样的逻辑都会想哭
Allianzcortex
2016 年 9 月 2 日
if 'sub_switch' in kwarg:
kwarg.pop()

这样子的。。。??
264768502
2016 年 9 月 2 日
或许这样更好
```python
try:
if kwarg.pop('sub_switch'):
do()
except KeyError:
if main_switch:
do()
```
just4test
2016 年 9 月 5 日
首先你不能
temp = kwarg.get('sub_switch')
么?
264768502
2016 年 9 月 5 日
@just4test 可以赋值先,不过逻辑判断的过程依然很丑陋
264768502
2016 年 9 月 10 日
果然抛开业务谈逻辑不是很好,这里还有个性能问题
查了一下,当 key 高概率在字典,可以用 try.否则先查看有没有,再执行逻辑,性能上会更好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/303507

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX