Python单击模块未按预期工作

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

根据单击,有两种方法可以指定布尔标志。“开/关”方法:

以及“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 __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')