1

考虑下面的简单程序。

from docopt import docopt

doc = """
Usage: ./opt.py [options]

    -h,--help         show this
    -a <option>       generic option [default: Foo]
"""

options = docopt(doc)
print options['-a']
print options

是否可以在我的程序中区分以下两个用户调用?

python Opt.py -a Foo
python Opt.py
4

1 回答 1

2

如果定义默认值,则无法区分。但是您可以从文档字符串中删除默认值并以编程方式设置它。

from docopt import docopt

doc = """
Usage: ./opt.py [options]

    -h,--help         show this
    -a <option>       generic option
"""

options = docopt(doc)
if options['-a']:
    # option was defined
    ...
else:
    # option was not defined
    options['-a'] = "Foo"
    ...

但无论如何,对于哪个用例来说,这根本是必要的?

于 2017-01-26T21:55:06.230 回答