【问题标题】:Comparing None values [duplicate]比较无值[重复]
【发布时间】:2020-01-14 18:05:39
【问题描述】:

在我的代码中有一个变量foo,它接收来自被调用函数的值。由于传递给此函数的参数,它返回None

当我执行if 比较变量fooNone 值时,它返回False。但是,如果我将type(None) 签名到bar 变量并执行相同的if,它将返回True

为什么?

TL;DR

foo = function()
type(foo)
>> <class 'NoneType'>

if foo == None
>> False

bar = None
if foo == bar 
>> False

bar = type(None)
if foo == bar
>> True

为什么?

【问题讨论】:

  • with def function(): return None 我得到了 foo = function(); print(foo == None) 的 True 和 bar = None 的 True; print(foo == bar)
  • 发布的代码不是有效的python,所以大概有其他相关代码被编辑掉了。从剩下的样子看,某处有一个foo=type(foo) 或类似的东西。

标签: python nonetype


【解决方案1】:

None 对象表示缺少值。就这些运算符而言,缺少值表示表达式的其余部分也缺少值并且不应计算。

https://www.python.org/dev/peps/pep-0505/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 2021-03-01
    • 2023-01-10
    • 2019-12-30
    • 2013-07-02
    相关资源
    最近更新 更多