var == False 或者如果不是 var

var == False or if not var

var = False
if not var:
    do_thing()

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

两者有什么区别?(如果有的话) 一个比另一个快吗?

根据 PEP8 "Programming Recommendations":

Don't compare boolean values to True or False using ==.

  • Yes: if greeting:
  • No: if greeting == True:
  • Worse: if greeting is True:

你的两个测试恰好在这里工作,但一般来说,使用隐式布尔值被认为更“Pythonic”,因为“真实”与“虚假”通常比 True 与真实更重要。 False; if not var: 将在 None 或空序列时准确地将 var 识别为 falsy,这通常是您想要的。

就性能而言,if not var: 会更快; if var == False: 必须加载 varFalse,执行比较,然后执行 if 总是执行的隐式布尔测试; if not var: 直接执行隐式布尔测试,没有序言。