python - var == False 或如果不是 var

标签 python boolean boolean-expression

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:

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

就性能而言,if not var:会更快; if var == False:必须加载varFalse ,执行比较,然后执行隐式 boolean 测试 if总是执行; if not var:直接执行隐式 boolean 测试,无需前导码。

关于python - var == False 或如果不是 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51691149/

相关文章:

python - Sphinx 找不到我的 python 文件。说 'no module named ...'

c# - 有没有办法通过检索 MySqlDataReader boolean 值在 Visual Studio C# 中打开/关闭复选框?

smalltalk - 评估 Pharo 中的不平等

c# - 将 bool 表达式字符串转换为 .NET 代码

python - Jinja2 模板中的 "eval"语句

python - 'NoneType' 对象没有属性 'shape' ... 即使我可以打印出来

python - 端口扫描器需要元组而不是 str

c - 摆脱 "if"- boolean 逻辑

ios - 使用 NSDictionary 发送 TRUE/FALSE 值,但不使用 NSNumber 类

c++ - 当函数返回类型为 bool 时,为什么不能在 C++14 中返回共享指针?