我有两个代码片段,基本上做同样的事情.以下是两个样本:
retval = count or num_element > 0
Run Code Online (Sandbox Code Playgroud)
和
if count or num_element > 0 :
retval = True
else:
retval = False
Run Code Online (Sandbox Code Playgroud)
第一种选择是否优先于第二种选择?我知道人们有自己的选择.但我很想知道是否有任何表现或其他影响.我觉得第二种方式更具可读性.
Mar*_*ers 10
他们是不是基本上是相同的.如果count是真值(非零,或者不是空容器等),count则以第一种形式分配值.第二种形式总是指定一个布尔值.
除非该语句是紧密高迭代计数循环的一部分,否则性能不应成为问题.即使它是循环的一部分,差异也会很小.
剩下的是一种风格选择,但你的第二种形式通常是多余的.
每当我看到if test: value = True,else: value = False声明,它通常是一个标志,有人不理解的是,测试本身已经返回一个布尔值或可做成一个.
如果您需要一个真正的布尔值,请使用:
retval = bool(count) or num_element > 0
Run Code Online (Sandbox Code Playgroud)
否则只需坚持第一个选项.