Python编码风格

tut 发布于 5 天前 python 最后更新 5 天前 10 浏览

我有两个代码片段,基本上做同样的事情。这里是两个样本:

retval = count or num_element > 0
if count or num_element > 0 :
    retval = True
else:
    retval = False
第一种选择比第二种选择更有优先性吗?我知道人们有自己的选择。但我很想知道是否有任何表现或其他影响。我觉得第二种方式更具可读性。
已邀请:

siure

赞同来自:

它们基本上不一样。如果count是真值(非零,或者不是空容器等),则以第一种形式分配count的值。第二种形式总是指定一个布尔值。 除非该语句是紧密的高迭代计数循环的一部分,否则性能不应成为问题。即使它是循环的一部分,差异也会很小。 剩下的是一种风格选择,但你的第二种形式通常是多余的。 每当我看到if test: value = Trueelse: value = False语句时,通常都表明有人不知道测试本身已经返回一个布尔值或者可以组成一个布尔值。 如果需要true布尔值,请使用:

retval = bool(count) or num_element > 0
否则只需坚持第一个选项。

out

赞同来自:

如果您特别希望retval结束为TrueFalse(如果该值为真,则可能不是count的值),您可以执行以下操作:

retval = True if count else num_element > 0