一、简介
None是一个对象,而NULL是一个类型。
Python中没有NULL,只有None,None有自己的特殊类型NoneType。
None不等于0、任何空字符串、False等。
在Python中,None、False、0、“”(空字符串)、、()(空元组)、{}(空字典)都相当于False。
none可以看作是一个具体的值用来初始化变量,而null表示空不是一个值,并且没有与任何一个值绑定并且存储空间也没有存储值。
二、None的含义
如下图所示,None表示没有,它是NoneType类的对象,你可以把它看成是一个具体的值。正因它是一个具体的值,所以它可以用来初始化变量,可以作为很多函数在某些异常输入下的返回值。None它既有又没有,有体现在它是具体的值,例如它能为变量a赋值;没有体现在None它想告诉你的是当前变量a绑定的是一个没有意义,没有利用价值的值。
三、Null的含义
Null表示空它不是一个值,这点不同于None。在python这类脚本语言中变量和值是绑定关系,如果说一个变量是Null,实际是说它没有与任何值绑定,也就是说该变量实际上并未被定义;在java、C++、C这类编译语言中,我们说一个变量为Null,是指该变量所指向的那个内存空间上没有存储任何值,就连上一次使用过该内存空间的残留值都没有。
四、判断为空
判断变量是否为空的高效方法是:
if X is None
if not X:当X为None、False、“”、0、[]、()、{}时,not X为真,无法分辨
if not X is None:等价于if not (X is None)、if X is not None
判断空使用指南
if X is not None写法清晰明了,且不会出错,推荐使用;
if not x使用前,必须确定X为None、False、“”、0、[]、()、{}时对判断无影响。
x = []
y = None
print 'X is None测试结果'
print x is None #False
print y is None #True
print 'not X测试结果'
print not x #True
print not y #True
print 'not X is None测试结果'
print not x is None #True
print not y is None #False
print 'X is not None测试结果'
print x is not None #True
print y is not None #False