Python必须掌握的200道面试题

基础笔试题

基础算法题

首页 > Python必须掌握的200道面试题 > 基础笔试题 > 1.15节:如何理解Python中的None类型?

1.15节:如何理解Python中的None类型?

薯条老师 2020-07-21 17:13:49 234217 0

编辑 收藏

教程引言:

荟萃经典的Python面试题,包括但不限于基础知识,高阶知识,算法,以及开放性回答等必考的面试题。

如何理解Python中的None类型?

Python中的None对象是一个NoneType类型, 我们可以在交互模式中执行type(None)来输出None的类型名:

>>> type(None)

<class 'NoneType'>

直接通过NoneType来构造一个None对象,会抛出了NameError的异常:

>>> none = NoneType()

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

NameError: name 'NoneType' is not defined

在Python的官方文档中查找资料可知,NoneType并没有在Python/C API中进行公开,所以使用NoneType时会抛出NoneType未定义的错误。Python中的None对象是一个单例,仅用来测试对象的标识值。单例对象在进程的生命周期中只存在一个唯一的实例。

CPython中的对象标识值即为内存地址

由于None对象是单例,所以None对象的标识值仅与None对象的标识值相等。在Python中使用is操作符来判断标识值是否相等。

代码实例:

# None对象的标识值仅与None对象的标识值相等,if语句下面的代码永远不会执行
if False is None:
    print("never happen!")
    
future_of_dawdler = None
if future_of_dawdle is None:
    # 懒人前程一片黯淡
    print("just be diligent!!!")

关注微信公众号:薯条编程,公众号后台回复"Python资料",免费领取Python电子书,以及学习Python视频课程。

小班授课,薯条老师一对一教学,火热报名中,点击了解线下就业培训。



欢迎 发表评论: