带条件的函数构造。哪一个更可取?

问题描述 投票:0回答:1

当条件适用时,这两种结构中哪一种更正确或更可取?为什么?

def func1(args):
    if condition1:
        return ...
    elif condition2:
        return ...
    else:
        return ...

 def func2(args):
    if condition1:
        return ...
    if condition2:
        return ...
    return ...

谢谢

python function conditional-statements
1个回答
0
投票

我了解到这两种结构都是正确的并且可以在 Python 函数中使用。它们之间的选择通常取决于具体的上下文和可读性。

当条件

互斥

时,
func1
if-elif-else优先;也就是说,在任何给定时间只有一个条件为真。很明显,只会执行一个代码块,并且很容易看到该函数可以采用的所有可能路径。

当条件不互斥或检查可能全部为真的多个条件时,通常会使用带有多个

func2

 语句并后跟最后一个 
if
return
。在这种情况下,只要执行一条
return
语句,控制就会退出该函数。

就性能而言,两者之间通常没有显着差异,但在条件 1 通常为 true 的情况下,

func2
可能会稍快一些,因为它需要进行较少的比较(没有
elif
else
)。 然而,可读性可维护性通常比这些次要的性能考虑更重要。

我很乐意阅读您的意见。

© www.soinside.com 2019 - 2024. All rights reserved.