最优雅的切换机箱方式,如C语言

时间:2015-03-13 01:37:00

标签: python switch-statement

为了通过cmd行解析一些args,我有一个用if .. elif

写的“switch case”
if arg == 1:
    ..something...
elif arg >= 2 and arg < 4:
    ..something else ...
elif arg < 6:
    ..something else ...
else:
    ..something else ...

以上,elif arg < 6: 可以替换为:elif arg == 4 or arg == 5:

当需要检查更多参数值时,这会变得有点混乱。

什么是阅读代码的最有效和最简单的方法?

2 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

def case_A():
    .. something ..

def case_B():
    .. something ..

def case_C():
    .. something ..

def case_else():
    .. something ..

{
    1: case_A,
    2: case_B,
    3: case_B,
    4: case_C,
    5: case_C
}.get(arg, case_else)()

答案 1 :(得分:0)

如果您的目标确实是解析命令行,请在python 2.6或更低版本中使用optparse,对于以后的python版本使用argparse。还有一个名为aaargh的非常好的小包,它可以提供一些非常简洁的代码。您将需要使用装饰器,因此可能将其保存为以后的项目。

使用optparse或argparse,你可以使用-d somedir或--dir = somedir之类的东西。它允许您以任何顺序处理两个可选参数,以及所需的参数。

如果命令行不符合您的要求,它也会生成帮助消息。