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 ![]() 不确定是不是足够好的方法,如果分支太多可以用字典存 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 quickma 2018-04-17 16:00:13 +08:00 ![]() @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 字典 |