Typer 教程:参数类型与数值范围验证
typer Typer是一款基于Python类型提示构建的库,用于轻松编写高质量命令行接口(CLI)程序。 项目地址: https://gitcode.com/gh_mirrors/ty/typer
在命令行应用开发中,参数验证是一个非常重要的环节。Typer 作为一个强大的 Python 命令行应用构建工具,提供了丰富的参数类型和验证功能。本文将重点介绍如何使用 Typer 进行数值类型的参数验证。
数值参数的基本使用
Typer 支持两种主要的参数类型:位置参数(Argument)和可选参数(Option)。对于数值类型的参数,我们可以指定其类型为 int
或 float
。
import typer
def main(
id: int = typer.Argument(..., min=0, max=1000),
age: int = typer.Option(20, min=18),
score: float = typer.Option(0, max=100),
):
print(f"ID is {id}")
print(f"--age is {age}")
print(f"--score is {score}")
if __name__ == "__main__":
typer.run(main)
参数验证详解
1. 位置参数验证
示例中的 id
参数是一个位置参数,使用了 typer.Argument
定义:
id: int = typer.Argument(..., min=0, max=1000)
...
表示这是一个必需参数,用户必须提供min=0
设置最小值为 0max=1000
设置最大值为 1000
如果用户输入的值不在这个范围内,Typer 会自动显示错误信息。
2. 可选参数验证
示例中包含了两个可选参数:
age: int = typer.Option(20, min=18)
score: float = typer.Option(0, max=100)
-
age
参数:- 默认值为 20
- 最小值为 18(用户输入必须 ≥18)
-
score
参数:- 默认值为 0
- 最大值为 100(用户输入必须 ≤100)
3. 浮点数参数
score
参数使用了 float
类型,这允许用户输入小数:
score: float = typer.Option(0, max=100)
实际应用场景
这种数值验证在实际应用中非常有用,例如:
- 用户管理系统:验证用户年龄必须大于等于18岁
- 评分系统:确保分数在0-100的合理范围内
- ID系统:保证ID在数据库的有效范围内
错误处理
当用户输入不符合要求的数值时,Typer 会自动生成友好的错误信息。例如:
- 如果输入
--age 15
,会提示年龄必须 ≥18 - 如果输入
--score 150
,会提示分数必须 ≤100 - 如果省略必需的
id
参数,会提示缺少参数
最佳实践
- 合理设置默认值:为可选参数设置合理的默认值,提升用户体验
- 明确范围限制:对于有明确范围要求的参数,一定要设置
min
和max
- 类型明确:根据实际需要选择
int
或float
类型 - 必需参数标记:使用
...
明确标记必需参数
通过合理使用 Typer 的数值参数验证功能,可以大大减少命令行应用的输入错误,提高应用的健壮性和用户体验。
typer Typer是一款基于Python类型提示构建的库,用于轻松编写高质量命令行接口(CLI)程序。 项目地址: https://gitcode.com/gh_mirrors/ty/typer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考