2024-05-21 00:09:20 发布
网友
我的代码当前看起来如下:
if option1: ... elif option2: ... elif option3: ....
如此等等。虽然我并不对此感到不快,但我想知道在python中是否有更好的选择。我的脚本是一个基于控制台的脚本,在这里我使用argparser来获取用户需要的内容。
如果“option”可以包含“one”、“two”或“three”,则可以
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]()
我首先想到的是:
而不是这样做:
if option1: a = 1 elif oprtion2: a = 2 elif oprtion3: a = 3 else: a = 0
你可以这样做:
a = 1 if option1 else 2 if option 2 else 3 if option3 else 0
有关详细信息,请参见:PEP 308: Conditional Expressions!
我猜你是从别的地方开始编写Python脚本的,在那里,switch语句可以解决你的问题。因为在Python中这不是一个选项,所以您正在寻找另一种方法来做事情。
switch
但是,如果没有上下文,你就不能很好地回答这个问题(有太多的选择)。
我将提出一个(有点像Python)替代方案:
让我们从一个我认为你来自哪里的例子开始。
def add_to_x (x): if x == 3: x += 2 elif x == 4: x += 4 elif x == 5: x += 5 return x
我的选择是:
def add_to_x (x): vals = { 3 : 5 , 4 : 8 , 5 : 10 } return vals[x]
你也可以把look into lambdas放入the dictionary structure I used。
但是,如前所述,如果没有上下文,这可能不是你想要的。
如果“option”可以包含“one”、“two”或“three”,则可以
我首先想到的是:
而不是这样做:
你可以这样做:
有关详细信息,请参见:PEP 308: Conditional Expressions!
我猜你是从别的地方开始编写Python脚本的,在那里,
switch
语句可以解决你的问题。因为在Python中这不是一个选项,所以您正在寻找另一种方法来做事情。但是,如果没有上下文,你就不能很好地回答这个问题(有太多的选择)。
我将提出一个(有点像Python)替代方案:
让我们从一个我认为你来自哪里的例子开始。
我的选择是:
你也可以把look into lambdas放入the dictionary structure I used。
但是,如前所述,如果没有上下文,这可能不是你想要的。
相关问题 更多 >
编程相关推荐