var == False或非var

bailey.bailey
var = False
if not var:
    do_thing()

要么

var = False
if var == False:
    do_thing()

两者之间有什么区别(如果有一个),一个比另一个快吗?

暗影游侠

根据PEP8“编程建议”

不要使用==将布尔值与True或False进行比较。

  • 是: if greeting:
  • 没有: if greeting == True:
  • 更差: if greeting is True:

您的两个测试都在这里起作用,但通常来说,使用隐式布尔值被认为更“ Pythonic”,因为“真实”与“虚假”通常比Truevs更重要Falseif not var:正确识别var为falseNone或为空序列(通常是您想要的)。

就性能而言,if not var:将会更快;if var == False:必须加载varFalse执行比较,然后执行if始终执行的隐式布尔测试if not var:直接执行隐式布尔测试,无需任何前导。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章