最直接可靠的方式是先处理None安全性,再用strip()判断:my_str is not None and not my_str.strip(),可安全覆盖None、空字符串及纯空白字符串(如"\t\n ")。

最直接可靠的方式是先处理 None 安全性,再用 strip() 判断。
处理 None 和空字符串的基本检查
变量可能为 None,直接调用方法会报错。应先确认是否为 None,再判断内容:
-
my_str is None→ 明确排除未定义或空值情况 -
my_str == ""或not my_str→ 可识别空字符串,但无法识别"\t\n "这类纯空白串
识别“空或纯空白”的推荐写法
业务中常说的“为空”,通常包括:""、" "、"\n\t" 等。这时应统一用 strip():
-
not my_str or not my_str.strip()—— 安全组合,覆盖None、空串、纯空白串 -
my_str is not None and not my_str.strip()—— 更严谨,显式排除None - 不建议单独用
not my_str,因为" "会被当作非空
什么时候用 isspace()?
str.isspace() 专门检测字符串是否非空且全由空白字符组成(如空格、\t、\n、\r),但它对空字符串返回 False:
-
" \t\n".isspace()→True -
"".isspace()→False -
" a ".isspace()→False
所以它不能单独用于“空或纯空白”判断,仅适合需要区分“纯空白”和“含非空白字符”的场景。
总结常用模式
按使用频率和安全性排序:
- 通用判空(含纯空白):
my_str is not None and not my_str.strip() - 快速脚本/已知不为 None:
not my_str.strip() - 需明确区分空串与纯空白:
my_str == "" or my_str.isspace()

















