Python单击模块未按预期工作
根据单击,有两种方法可以指定布尔标志。“开/关”方法: 以及“is_标志”方法: 我没有这种行为。首先是代码Python单击模块未按预期工作,python,Python,根据单击,有两种方法可以指定布尔标志。“开/关”方法: 以及“is_标志”方法: 我没有这种行为。首先是代码 import click @click.command() @click.option('--one/--no-one', default=False, help='on/off') @click.option('--two', is_flag=False, help='is_flag') def foo(one, two): print(one, two) if __n
import click
@click.command()
@click.option('--one/--no-one', default=False, help='on/off')
@click.option('--two', is_flag=False, help='is_flag')
def foo(one, two):
print(one, two)
if __name__ == '__main__':
foo()
下面的会话显示第二个选项“two”是一个字符串参数,而不是布尔标志
$ python foo.py --help
Usage: foo.py [OPTIONS]
Options:
--one / --no-one on/off
--two TEXT is_flag
--help Show this message and exit.
$ python foo.py --two
Error: --two option requires an argument
$ python foo.py --two a
False a
$ python foo.py --one
True None
$ python foo.py --no-one
False None
我用错了吗
我正在使用click 6.7和:
$ python --version
Python 3.5.3 :: Anaconda 4.4.0 (x86_64)
$ uname -a
Darwin tardis 16.7.0 Darwin Kernel Version 16.7.0: Fri Apr 27 17:59:46 PDT 2018; root:xnu-3789.73.13~1/RELEASE_X86_64 x86_64
您指定了
is_flag=False
,这意味着它不是一个标志。将两个单击选项更改为:
@click.option('--two', is_flag=True, help='is_flag')
您已经指定了
is_flag=False
,所以它当然不是一个标志?
$ python --version
Python 3.5.3 :: Anaconda 4.4.0 (x86_64)
$ uname -a
Darwin tardis 16.7.0 Darwin Kernel Version 16.7.0: Fri Apr 27 17:59:46 PDT 2018; root:xnu-3789.73.13~1/RELEASE_X86_64 x86_64
@click.option('--two', is_flag=True, help='is_flag')