Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 路易吉:有没有办法通过';假';从命令行创建bool参数?_Python_Terminal_Luigi - Fatal编程技术网

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