Краткая форма опции argparse, разрешающая множество символов - PullRequest
0 голосов
/ 26 сентября 2018

Я проверял этот файл Python , где, кажется, используется короткий аргумент с 2 символами.

parser.add_argument(
    '-gt',
    '--gtfolder',
    dest='gtFolder',
    metavar='',
    help='folder containing your ground truth bounding boxes')

Я думал, что короткие аргументы должны содержать только один символ, и это меня удивило.Действительно, в документации говорится, что короткие опции (опции длиной всего один символ) ... .

С другой стороны, кажется, что код работает (по крайней мере,что касается argparse параметров).

Я проверил код, и он получает правильный аргумент, если используется короткая форма.

python3 pascalvoc.py -gt 'path/somewhere'

Единственная замеченная мною неисправность заключается в том, что сцепленная версия кода не работает:

python3 pascalvoc.py -gt'path/somewhere'

... ошибка: нераспознанные аргументы: -gtpath / где-то

Итак, мой вопрос, почему короткие варианты с более чем 1 символом разрешены в первую очередь.Это могло остаться незамеченным, если бы не каскадная версия.Кроме того, что в короткой форме необходим один дефис-минус, это, кажется, обходит простое правило, согласно которому короткая позиция должна быть короче длинной.В этом смысле это функционально (если, конечно, не применяется каскадная опция):

parser.add_argument(
    '-gt-not-short-at-all-argument',
    '--gtfolder',
    dest='gtFolder',
    metavar='',
    help='folder containing your ground truth bounding boxes')
...