首先声明,写在这里只是我个人的一个记录方式,可能有不完美的地方,只是为了自己加深记忆。

在 Python 中,有一个特殊的常量 None(N 必须大写)。和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。它是一个特殊 Python 对象, None 的类型是 NoneType

>>>type(None)
<class 'NoneType'> #输出<class 'NoneType'>,可以看到它是一个对象

None 在 Python 解释器启动时自动创建对象, 解释器退出时销毁。

None 是 NoneType 数据类型的唯一值(其他编程语言可能称这个值为 null、nil 或 undefined),也就是说,我们不能再创建其它 NoneType 类型的变量,但是可以将 None 赋值给任何变量。

那么 None 到底是啥呢,是表示空吗?
代码试试

>>a=[]
>>>a == None
False  #看到了吗,返回的是False

在试试另外的

>>>a is None
False  #依然False,说明None和空列表不一样

那么我们在试试 0 呢

>>>0==None
False#依然False,说明None和0也不一样

那么我们在试试空字符串

>>>''==None
False#依然False,说明None和空字符串也不一样

ok,那我们再试试一个未定义过的变量呢

>>>asd==None
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'asd' is not defined
#报错了,哈哈哈,这个方法行不通

最后试试 bool 类型呢

>>>False == None
False #依然不是哈

但是注意一点,在 if 判断中,None 代表 False

if None:
    print('True')
else:
    print('False')
#输出False

那么这个 None 到底是啥,能干啥?
简单来说,None 就是没有,不存在,0 和空字符串,空序列虽然为空,但是他们是存在的,是有意义的

None 有啥用处呢
写个代码说明一下

def nonetest():
    print('this is nonetest')

a=nonetest()
print(a)

运行后:
this is nonetest
None
这个时候 a 的值就是 None 了,因为函数 nonetest 没有返回值,a 就是没有,就是 None

在修改一下文件的代码:

def nonetest():
    print('this is nonetest')
    return
a=nonetest()
print(a)

运行后:
this is nonetest
None
这个时候 a 的值依然是 None,因为函数 nonetest 的返回值是空

所以总结一下,None 就是没有,啥也不是,不是 0,也不是空字符串,也不是 False(在 if 条件语句中相当于 False),也不是空序列


↙↙↙阅读原文可查看相关链接,并与作者交流