关于python:var == False或者如果不是var

var == False or if not var

本问题已经有最佳答案,请猛点这里访问。
1
2
3
var = False
if not var:
    do_thing()

1
2
3
var = False
if var == False:
    do_thing()

这两者有什么区别?(如果有)一个比两个都快吗?


根据PEP8"规划建议":

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

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

你的两个测试都是在这里进行的,但一般来说,使用暗含的酗酒被认为是更"Python式的",因为"真实的"和"虚伪的"通常比TrueFalse更重要;当if not var:None或空序列时,var将准确地识别为虚伪的,这通常是你想要的。

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