检查逻辑的Pythonic方法

2024-09-26 18:14:33 发布

您现在位置:Python中文网/ 问答频道 /正文

到目前为止,我发现了用于检查业务逻辑或任何其他逻辑的python代码,如下面所示(简化):

user_input = 100
if user_input == 100:
    do_something()
elif user_input > 100:
    do_sth_different()
else:
    do_correct()

当一个新的逻辑需要检查什么新的python程序员(像我)只需添加一个新的bock在elif。。。你知道吗

什么是pythonic方法来检查一堆逻辑而不使用一个很长的if-else检查块?你知道吗

谢谢。你知道吗


Tags: 代码inputif逻辑业务doelsesomething
2条回答

最常见的方法就是一行elifs,这并没有什么问题,事实上,documentation说使用elifs代替开关。但是,另一种非常流行的方法是创建函数字典:

functions = {100:do_something,101:do_sth_different}
user_input = 100
try:
    functions[user_input]()
except KeyError:
    do_correct()

这不允许使用给定的if user_input > 100行,但是如果您只需要检查等式关系和泛型情况,那么结果会很好,特别是如果您需要多次这样做的话。你知道吗

try except case可以通过显式调用字典上的get来替换,使用泛型函数作为default参数:

functions.get(user_input,do_correct)()

如果那能让你的船浮起来。你知道吗

除了你的方式可能是最好的方式之外,你还可以这样写:

user_input = 100

do_something() if user_input == 100 else
do_sth_different() if user_input > 100 else
do_correct()

相关问题 更多 >

    热门问题