condition 条件语句包含多个判断条件的话
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
elif condition_3:
statement_block_3
elif condition_4:
statement_block_4
elif condition_5:
statement_block_6
else:
statement_block_7
1
changrui0608 2018-04-17 13:11:20 +08:00 2
不确定是不是足够好的方法,如果分支太多可以用字典存 func,或者可以用 default dict 应对 default 情况
```py def func1(*args, **kwargs): pass def func2(*args, **kwargs): pass func_dict = { 'condition1': func1, 'condition2': func2, } real_condition = 'condition1' func_dict[real_condition]() ``` 逻辑特别简单的话,也可以用 lambda 表达式省行数 |
2
wnma3mz 2018-04-17 13:41:15 +08:00 via Android
一楼正解
|
3
super452 2018-04-17 13:43:59 +08:00
学习了
|
4
qianc1990 2018-04-17 13:47:03 +08:00
用字典啊, 哥
|
6
L2AKnG8GXx60bc6P 2018-04-17 13:51:16 +08:00
如果对顺序有要求,不要用字典,用 tuple 封装
|
7
wsds OP @changrui0608 我比较好奇 lambda 表达式
|
8
SuperMild 2018-04-17 13:55:06 +08:00
其实直接用多个 if elif 就很好。
|
10
Hopetree 2018-04-17 15:40:32 +08:00
不明白为什么要把这种最简单明了且容易读的代码改成别的?
写代码的目的难道不是为了在不影响效果的前提下简单明了易读吗,if elif 最完美 |
11
x7395759 2018-04-17 16:00:13 +08:00 1
@Hopetree 效率上有差距,虽然大多数的情况下不管,但是作为纯技术讨论是有意义的
附带官方解释: https://docs.python.org/2/faq/design.html#why-isn-t-there-a-switch-or-case-statement-in-python if else 是官方认可的方式 |
13
xieranmaya 2018-04-17 17:03:02 +08:00
如果我没记错的话,是专门不设计 switch 语句的
|
14
testsec 2018-04-17 22:28:47 +08:00 via iPhone
又学到一波操作
|
15
gnozix 2018-04-18 09:26:54 +08:00
Python cookbook 你值得拥有
|
16
alvy 2018-04-18 10:29:00 +08:00
字典
|