当条件适用时,这两种结构中哪一种更正确或更可取?为什么?
def func1(args):
if condition1:
return ...
elif condition2:
return ...
else:
return ...
或
def func2(args):
if condition1:
return ...
if condition2:
return ...
return ...
谢谢
我了解到这两种结构都是正确的并且可以在 Python 函数中使用。它们之间的选择通常取决于具体的上下文和可读性。
当条件互斥
时,
func1
与if-elif-else
优先;也就是说,在任何给定时间只有一个条件为真。很明显,只会执行一个代码块,并且很容易看到该函数可以采用的所有可能路径。
当条件不互斥或检查可能全部为真的多个条件时,通常会使用带有多个 func2
语句并后跟最后一个
if
的
return
。在这种情况下,只要执行一条 return
语句,控制就会退出该函数。
就性能而言,两者之间通常没有显着差异,但在条件 1 通常为 true 的情况下,
func2
可能会稍快一些,因为它需要进行较少的比较(没有 elif
或 else
)。
然而,可读性和可维护性通常比这些次要的性能考虑更重要。
我很乐意阅读您的意见。