gpt4 book ai didi

python - NoneType 位于哪里?

转载 作者:IT老高 更新时间:2023-10-28 20:22:12 25 4
gpt4 key购买 nike

在 Python 3 中,我想检查 value 是字符串还是 None

一种方法是

assert type(value) in { str, NoneType }

但是 NoneType 在 Python 中的位置在哪里?

没有任何导入,使用 NoneType 会产生 NameError: name 'NoneType' is not defined

最佳答案

你可以使用type(None)来获取类型对象,但是你要在这里使用isinstance(),而不是{中的type()。 ..}:

assert isinstance(value, (str, type(None)))

NoneType 对象不会在 Python 版本中的任何地方公开older than 3.10 *.

我根本不会使用类型检查,我会使用:

assert value is None or isinstance(value, str)

因为 None 是一个单例(非常有目的)并且 NoneType 明确禁止子类化:

>>> type(None)() is None
True
>>> class NoneSubclass(type(None)):
... pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: type 'NoneType' is not an acceptable base type

* 从 Python 3.10 开始,您可以使用 types.NoneType , 与 other singleton types being added to the types module 一致.

关于python - NoneType 位于哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21706609/

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