我将把我的评论扩展到一个答案。
在所有情况都返回的情况下,这些确实是等效的。在它们之间进行选择时变得重要的是更具可读性。
您的后一个示例使用该
elif结构来明确声明案例是互斥的,而不是依赖于案例是从收益中隐含的事实。这使得该信息更加明显,因此代码更易于阅读,并且不易出错。
举例来说,某人认为还有另一种情况:
def example(x): if x > 0: return 'positive' if x == -15: print("special case!") if x < 0: return 'negative' return 'zero'
突然,如果用户希望这种情况是互斥的,则存在潜在的错误(显然,对于示例而言,这没有多大意义,但在更现实的情况下可能会发生)。如果使用
elifs,则消除了这种歧义,并且使行为对于添加代码的人员可见(在他们添加代码时可能正在查看的级别)。
如果我遇到第一个代码示例,则可能会假设使用
ifs而不是
elifs暗含案例 并非是
互斥的,因此诸如更改value之类的事情
x可能会用于更改
ifs的执行(显然在这种情况的意图是显而易见的,并且是相互排斥的,但是再说一次,我们谈论的是不太明显的情况-
一致性很好,因此,即使在一个简单的例子中,显而易见的情况下,最好还是坚持一种方式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)