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

2016-09-02 16:56:52 +08:00
 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()

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

2038 次点击
所在节点    Python
6 条回复
BOYPT
2016-09-02 17:04:57 +08:00
写到这样的逻辑都会想哭
Allianzcortex
2016-09-02 17:14:37 +08:00
if 'sub_switch' in kwarg:
kwarg.pop()

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

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

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

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

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

© 2021 V2EX