python-click: dependent options on another option(按住Python键单击:依赖于另一个选项的选项)
本文介绍了按住Python键单击:依赖于另一个选项的选项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此问题与click程序包有关:我要设置我的命令,以便某些optional options
依赖于特定的选项值,并且根据其值是必需的。
必需选项:
- 输入(输入文件)
- doe(整数,表示算法名称)
子选项: 如果是
- 等于
1
则选项generator_string
应变为required=True
- 等于
2
则选项number_of_sample_points
应变为required=True
- 等于
3
则选项number_of_center_points
应变为required=True
有效示例:
--input ./input.txt --doe 1 --generator_string 1234
--input ./input.txt --doe 2 --number_of_sample_points 3
--input ./input.txt --doe 3 --number_of_center_points 2
代码:
推荐答案
我建议使用click.Command
这样的自定义类来执行此操作:
自定义类:
使用自定义类
这是如何工作的?
这是可行的,因为Click是一个设计良好的面向对象框架。@click.command()
修饰符通常实例化click.Command
对象,但允许使用cls
参数覆盖此行为。因此,在我们自己的类中继承click.Command
并覆盖所需的方法是一件相对容易的事情。
在这种情况下,我们覆盖click.Command.invoke()
,然后在运行命令之前验证是否已设置所需选项
测试代码:
结果:
这篇关于按住Python键单击:依赖于另一个选项的选项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!