Подтвердить что ты не робот

Argparse "обязательные" необязательные аргументы

Модуль Python argparse имеет так называемые необязательные аргументы. Все аргументы, имя которых начинается с - или --, по умолчанию являются необязательными. Как правило, обязательные аргументы являются позиционными, и, следовательно, при запуске программы они явно не указаны.

Например, в script, который имел:

parser.add_argument('language', help="Output language")

Вызовы будут выглядеть так:

$ hello-world czech

Иногда может быть приятнее иметь обязательный аргумент, передаваемый по имени (например, скриптовые вызовы легче читать таким образом), но все равно являются обязательными. то есть.

$ hello-world --use-lang czech

Как достичь этого? Именованные аргументы называются "необязательными" в документации argparse, что заставляет его звучать так, как будто они не могут быть обязательными. Есть ли способ сделать их обязательными?

4b9b3361

Ответ 2

Использование флага required=True прежнему показывает аргумент как необязательный при запуске сценария с --help. Нет ли способа, которым это можно изменить?