Parse, don't validate

Parse, don't validate

Memos

Parse, don't validate


在 Python 中处理程序输入(如命令行参数、JSON 文件等)时,应优先通过解析,而非仅进行验证


  1. 验证:检查输入数据是否符合预期格式(如年龄是否为正整数、CSV 行是否符合结构),仅确保数据 “看起来可用”,不涉及类型转换

  1. 解析:将低级别或非结构化数据转换为更高级别、结构化的类型(如将字符串转为 int、解析邮件地址为姓名和邮箱, 将用户表单转为User dataclass),包含类型转换和意义提取,本质是 “带理解的验证”

核心差异:

  • 验证仅检查格式,不改变数据类型,后续代码仍需处理原始类型;
  • 解析通过类型转换提取意义,为后续代码建立信任边界,确保数据可靠。

https://www.bitecode.dev/p/what-parse-dont-validate-means-in

#python

Generated by RSStT. The copyright belongs to the original author.

Source

Report Page