我有三个参数: --a --b --c 并且我希望我的命令至少接受其中一个参数,但 a/b/c 的所有组合也是有效的。例如:
command.py --a
command.py --a --b
command.py --a --b --c
...
但并非没有论据:
command.py
谢谢!
我有三个参数: --a --b --c 并且我希望我的命令至少接受其中一个参数,但 a/b/c 的所有组合也是有效的。例如:
command.py --a
command.py --a --b
command.py --a --b --c
...
但并非没有论据:
command.py
谢谢!
我希望我的命令至少接受其中一个
您可以执行以下操作:
>>> from docopt import docopt
>>> u = '''usage: command.py --a [--b --c]
... command.py --b [--a --c]
... command.py --c [--a --b]'''
>>> docopt(u, ['--a'])
{'--a': True,
'--b': False,
'--c': False}
>>> docopt(u, ['--b'])
{'--a': False,
'--b': True,
'--c': False}
>>> docopt(u, ['--c'])
{'--a': False,
'--b': False,
'--c': True}
>>> docopt(u, [])
usage: command.py --a [--b --c]
command.py --b [--a --c]
command.py --c [--a --b]
尽管这可能不是最用户友好的命令行界面。也许,你可以更详细地解释你的接口,我可以建议你如何实现它(可能不仅有选项,还有命令和位置参数)。