bool() 是 Python 的内置函数,用于将任意值转换为布尔值(True 或 False),其核心规则如下:
- 基本转换逻辑
- 假值(False):
None,False, 数值零(0,0.0,0j), 空序列("",[],()), 空映射({})bool(0) False bool("") False bool([]) False - 真值(True):
除上述假值外的所有对象bool(3) True(非零数) bool(" ") True(含空格的字符串) bool([None]) True(非空列表)
特殊对象处理
| 对象类型 | 返回值 | 说明 |
|----------------|--------|-----------------------|
| 自定义类实例 |True| 默认始终为真 |
| 实现__bool__| 自定义 | 按该方法返回值 |
| 实现__len__| 自定义 | 若__bool__未定义,按长度非零判断 |实用示例
检查数据有效性
data = []
if not bool(data):
print("数据为空") 输出
条件过滤
values = [0, 3, "", "text"]
filtered = list(filter(bool, values)) 结果: [3, "text"]
- 与逻辑操作结合
短路求值应用
x = 0
result = x and bool(x) 返回 0(因 x 为假值)
注意:
- 空字典
{}和空集合set()均为假值- 布尔转换是隐式条件判断的基础(如
if x:等价于if bool(x):)