var == False或非var

时间:2018-08-05 03:23:46

标签: python boolean boolean-expression

spark.dynamicAllocation.enabled = true
spark.shuffle.service.enabled = true

spark.dynamicAllocation.executorIdleTimeout
spark.dynamicAllocation.maxExecutors
spark.dynamicAllocation.minExecutors

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

1 个答案:

答案 0 :(得分:3)

PEP8 "Programming Recommendations"

  

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

     
      
  • 是:if greeting:
  •   
  • 否:if greeting == True:
  •   
  • 更糟糕:if greeting is True:
  •   

您的两个测试都在这里起作用,但通常来说,使用隐式布尔值被认为更“ Pythonic”,因为“真实”与“虚假”通常比True与{{ 1}}; Falseif not var:准确地标识为var或为空序列(通常是您想要的序列)时为虚假。

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