gpt4 book ai didi

python - 与 None 变量类型的比较

转载 作者:行者123 更新时间:2023-11-28 19:45:02 27 4
gpt4 key购买 nike

我知道不推荐类型比较,但我有一些代码在 if elif 系列中执行此操作。但是,我对 None 值的工作方式感到困惑。

def foo(object)
otype = type(object)
#if otype is None: # this doesn't work
if object is None: # this works fine
print("yep")
elif otype is int:
elif ...

为什么我可以很好地与 is int 等进行比较,但不能与 is None 进行比较? types.NoneType 似乎在 Python 3.2 中消失了,所以我不能使用它...

以下内容

i = 1
print(i)
print(type(i))
print(i is None)
print(type(i) is int)

打印

1
<class 'int'>
False
True

鉴于

i = None
print(i)
print(type(i))
print(i is None)
print(type(i) is None)

打印

None
<class 'NoneType'>
True
False

我想 None 很特别,但是有什么用呢? NoneType 真的存在,还是 Python 在骗我?

最佳答案

None 是 Python 提供的特例单例。 NoneType 是单例对象的类型。 type(i) is NoneFalse,但是 type(i) is type(None) 应该是 true。

关于python - 与 None 变量类型的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com