Я использую argparse
для управления параметрами командной строки, и я хочу управлять двумя вариантами: --check
и --nocheck
. Я на самом деле делать что-то подобное в mybadscript.py
:Как управлять приоритетом в argparse?
[...]
args = parser.parse_args()
if args.check:
check = True
if args.nocheck:
check = False
[...]
Проблема заключается в том, что если запустить скрипт так:
python mybadscript.py --nocheck --check
check
будет установлен в False
. Это неверно, поскольку последний параметр - --check
.
Как я могу правильно ими управлять?
PS: Я знаю, что вы можете легко избежать этого, используя только один вариант, но я бы знал, как я могу управлять приоритетом опций с argparse
, так как вы можете столкнуться с ним в более сложных сценариях.
PPS: предлагаемый ответ, кстати, отвечает на мой вопрос, но связанный с ним вопрос не является тем же.
Возможный обман? Http: // StackOverflow.com/q/15008758/748858 – mgilson
Основной момент заключается в том, что ваш пользователь контролирует приоритет - последняя строка опции имеет окончательное значение для значения. Если вам это не нравится, вам нужно использовать специальные классы 'action' и' dest' для определения и использования более ранних строк. – hpaulj