Python 路易吉:有没有办法通过';假';从命令行创建bool参数?
我有一个Python 路易吉:有没有办法通过';假';从命令行创建bool参数?,python,terminal,luigi,Python,Terminal,Luigi,我有一个Luigi任务,其布尔参数默认设置为True: class MyLuigiTask(luigi.Task): my_bool_param = luigi.BoolParameter(default=True) 当我从终端运行此任务时,我有时希望将该参数传递为False,但得到以下结果: $ MyLuigiTask --my_bool_param False error: unrecognized arguments: False 对于false和0,显然相同 我知道如果
Luigi
任务,其布尔参数默认设置为True:
class MyLuigiTask(luigi.Task):
my_bool_param = luigi.BoolParameter(default=True)
当我从终端运行此任务时,我有时希望将该参数传递为False,但得到以下结果:
$ MyLuigiTask --my_bool_param False
error: unrecognized arguments: False
对于false
和0
,显然相同
我知道如果我想使其为真,我可以将默认值设置为假,然后使用标志——my_bool_参数
,但我更喜欢将默认值设置为真
有没有办法做到这一点,但仍然从终端传递False?找到了解决方案:
这里,显式\u解析
告诉Luigi,在对MyLuigiTask
的终端调用中添加标志--my\u bool\u param false
,将被解析为store\u false
现在我们可以:
$ MyLuigiTask --my_bool_param false
False
似乎这个问题已经得到了回答:制作一个名为
no my param
的标志对你合适吗?@Tom你的参考是argparse,不是Luigi。你是说他们有完全相同的机制吗?@SimonCrane谢谢你的建议,它是“ok”的,就像将默认值设为False一样。我想知道,如果我把“假”传给路易吉,是否有什么遗漏……啊,我明白了。答案如下:或者重写cmdline_解析器:
$ MyLuigiTask --my_bool_param false
False