Можно ли сказать, установил ли пользователь опцию, используя docopt?
Рассмотрим следующую простую программу.
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
1 ответ
Вы не можете различить, если вы определяете значение по умолчанию. Но вы можете удалить значение по умолчанию из строки документации и установить его программно.
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"
...
Но в любом случае, для какого варианта использования это вообще понадобится?