None 是 python 中表示“无值”的唯一空 对象,属 NoneType 类型且不可变;应使用 is None 判断,不可调用方法或迭代。

None 在 Python 中代表“没有值”或“空”,它不是 0、空 字符串 、空列表,也不是 False,而是一个独立的特殊 常量。
None 是一个独特的空对象
它属于 NoneType 类型,而且是该类型的唯一实例。你不能创建新的 NoneType 对象,也不能修改 None —— 它在内存中只有一个固定地址,所有对 None 的引用都指向同一块位置。
- 赋值给变量时:
x = None表示 x 当前不持有任何有效数据 - 函数没写 return 时,默认返回 None
- 方法(如 list.append())执行成功但不产生新对象,也返回 None
None 和其他“假值”不一样
虽然 if None: 会进入 else 分支(因为 None 在布尔上下文中为 False),但它和 False、0、""、[] 等有本质 区别:
-
None == False返回False(它们不相等) -
type(None)是NoneType,而type(False)是bool - 判断是否为 None,应使用
is None,而不是== None
常见用途和注意事项
它常用于函数参数默认值、占位、标记未初始化状态,或者表示操作无返回结果:
立即学习“Python 免费学习笔记(深入)”;
- 定义可选参数:
def func(x, y=None):表示 y 可不传 - 检查变量是否被赋值:
if data is None:比if not data:更准确(避免误判空列表或 0) - 不能对 None 调用方法或索引:
None.upper()或None[0]会报错 - 不能迭代 None:
for i in None:会触发 TypeError
基本上就这些。
以上就是