相关疑难解决方法(0)

NoneType,原因和细节的实现

我最近在某处读过Nonepython 中的特殊值是它自己类的单例对象,具体来说NoneType.这解释了很多,因为涉及Nonepython的大多数错误产生AttributeErrors而不是某些特殊的"NoneError"或其他东西.

由于所有的这些AttributeErrors反映了属性的NoneType缺乏,我开始用什么属性感兴趣NoneType 如有有.

我决定研究这个NoneType并了解更多相关信息.我总是发现学习新语言功能的最佳方法是使用它,所以我尝试NoneType在IDLE中实例化:

>>> n = NoneType()
Run Code Online (Sandbox Code Playgroud)

这产生了一个错误:

Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
    n = NoneType()
NameError: name 'NoneType' is not defined
Run Code Online (Sandbox Code Playgroud)

困惑,我检查None了我是否得到了正确的类型名称.果然,

>>> type(None)
<class 'NoneType'>
Run Code Online (Sandbox Code Playgroud)

现在非常困惑,我做了一个快速的谷歌搜索.这表明由于某些原因,在Python 3中以某种方式删除了NoneType.

好吧,不过,哈哈!我可以通过None在变量中存储类型来解决这个问题,因为类是python中的对象.这似乎有效:

>>> NoneType = type(None)
>>> n = NoneType()
Run Code Online (Sandbox Code Playgroud)

当我打印n时,我得到的是我所期待的:

>>> print(n)
None
Run Code Online (Sandbox Code Playgroud)

但后来发生这种情况:

>>> n is None …
Run Code Online (Sandbox Code Playgroud)

python singleton python-3.x python-internals nonetype

9
推荐指数
2
解决办法
1623
查看次数