标签归档:None

正确理解python中的None

Python中以下数据会被当做 来处理:

  • 常量 None

  • 常量 False

  • 任何形式的数值零 如 0,0.0,0L,0j

  • 空的序列如 ”,(),[]

  • 空的字典如 {}

  • 当用户定义的类中定义了 nonzero()和len()方法,且该方法返回整数0或者布尔值False时

其中 None 的特殊性体现在它既不是0,False,也不是空字符串
它就是一个空值对象

In [10]: type(None)
Out[10]: NoneType

所有赋值为None的变量都相等,None与任何其他非None的对象比较结果都为False

In [12]: a = []

In [13]: a is None
Out[13]: False

In [14]: a == None
Out[14]: False

所以我们不能用None判断 列表为空
下面是正确方法

In [15]: a
Out[15]: []

In [16]: if a:
    ...:     print("a is not empty")
    ...: else:
    ...:     print("a is empty")
    ...:
a is empty