对于Python中的if/elif语句,还有什么选择?

What's an alternative to if/elif statements in Python?

本问题已经有最佳答案,请猛点这里访问。

我的代码当前如下所示:

1
2
3
4
5
6
if option1:
    ...
elif option2:
    ...
elif option3:
    ....

等等。虽然我对它不满意,但我想知道在Python中是否有更好的选择。我的脚本是一个基于控制台的脚本,我使用argparser来获取用户需要的内容。


如果是选择的可以contain一,二,或三,你可以给你P></

1
2
3
4
5
6
7
8
9
10
11
12
13
def handle_one():
  do_stuff

def handle_two():
  do_stuff

def handle_three():
  do_stuff


{'one': handle_one,
 'two': handle_two,
 'three': handle_three}[option]()


我guessing你启动Python脚本与其他背景的地方,在那里你会switch解决语言问题。这是not as an option的Python,你我一路寻找到的东西。P></

虽然没有context,你不能回答这问题真的很好(there are too many的期权)。P></

我会扔在一个替代:(somewhat语言)P></

start with an example of,我们认为要从你在哪里。P></

1
2
3
4
5
6
7
8
def add_to_x (x):
    if x == 3:
        x += 2
    elif x == 4:
        x += 4
    elif x == 5:
        x += 5
    return x

这是我的选择:P></

1
2
3
def add_to_x (x):
    vals = { 3 : 5  ,  4 : 8  ,  5 : 10 }
    return vals[x]

You can also put into You can看lambda,which used into the词典的结构。P></

but again as this context,说,没有什么你可以not be looking for。P></


this is the first thing that to:来我的心灵P></

做中学:instead of thisP></

1
2
3
4
5
6
7
8
if option1:
    a = 1
elif oprtion2:
    a = 2
elif oprtion3:
    a = 3
else:
    a = 0

You can do this:P></

1
a = 1 if option1 else 2 if option 2 else 3 if option3 else 0

为更多的细节,条件表达式:PEP 308:看!P></