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脚本与其他背景的地方,在那里你会
虽然没有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></