Python 中 if not value 与 is None 的区别
Python 中 if not value 与 is None 的区别 副标题: if not line 判断的是“这个值是否为假值”,if line is None 判断的是“这个值是否就是 None”。两者可能在某些输入上得到相同结果,但表达的业务语义并不相同。 适读人群: 正在学习 Python 条件判断,或需要处理文本、接口参数和可选字段的开发者 阅读时间: 6 分钟 从文档解析中的空行过滤说起 逐行解析文档时,经常会看到下面的代码: for raw_line in lines: line = raw_line.strip() if not line: continue # 继续处理非空内容 这里为什么使用: if not line: 而不是: if line is None: 关键不在于哪种写法更简短,而在于程序此时要识别的是空字符串,不是 缺失值 None。 先跟踪 line 是怎么产生的 这一段代码的执行顺序是: raw_line = " " line = raw_line.strip() str.strip() 会删除字符串首尾的空白字符,并返回一个字符串: assert " 投标人资格要求 ".strip() == "投标人资格要求" assert " ".strip() == "" assert "".strip() == "" 只包含空格的行经过 strip() 后会变成空字符串 "",不会变成 None。 因此后面的条件实际需要回答: ...