如何在 python 中“测试”NoneType?

新手上路,请多包涵

我有一个有时会返回 NoneType 值的方法。那么我怎么能质疑一个 NoneType 的变量呢?例如,我需要使用 if 方法

if not new:
    new = '#'

我知道这是错误的方式,我希望你明白我的意思。

原文由 CrveniZg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 612
2 个回答

那么我怎么能质疑一个 NoneType 的变量呢?

使用 is 运算符,像这样

if variable is None:

为什么这行得通?

由于 None 是 Python 中 NoneType 的唯一单例对象,我们可以使用 is 运算符来检查一个变量是否在 None 中或不。

引用自 is 文档

The operators is and is not test for object identity: x is y is true if and only if x and y 是同一个对象。 x is not y 产生逆真值。

由于只能有一个 None 的实例, is 将是检查 None 的首选方法。


从马口中听到

引用 Python 的编码风格指南 - PEP-008 (由 Guido 自己共同定义),

None 等单例的比较应该始终使用 isis not 完成,而 不是相等运算符

原文由 thefourtheye 发布,翻译遵循 CC BY-SA 3.0 许可协议

if variable is None:
   ...


 if variable is not None:
   ...

原文由 elhoucine 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题