【问题标题】:PEP8: `is True` vs `is None`PEP8:`is True` vs `is None`
【发布时间】:2020-04-19 19:09:36
【问题描述】:

PEP8 对布尔比较有强烈的看法:

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

正确:

if greeting:

错误:

if greeting == True:

更糟:

if greeting is True:

但是当谈到None,这也是一个内置的单例时,建议是:

与 None 等单例的比较应始终使用 is 或 not,而不是相等运算符。

那么,当涉及到布尔值时,为什么检查 x is True 是否比检查 x == True 更糟糕?

【问题讨论】:

标签: python coding-style styling pep8


【解决方案1】:

“is”测试身份,不像“==”那样比较。通常你想比较,这就是为什么“is”比“==”“通常更糟”,但“is”根本不是“错误”。这取决于目的。

【讨论】:

  • 谢谢,但 rhat 没有回答这个问题:为什么 is True 实际上比 == True 差?
  • 事后不要改变:你的问题实际上是关于is True vs is None
猜你喜欢
  • 2018-11-29
  • 2013-12-23
  • 2011-02-12
  • 1970-01-01
  • 2010-09-16
  • 2020-12-01
  • 1970-01-01
相关资源
最近更新 更多