argparse
Действие магазина позволяет программисту различать 3 варианта использования:
- опция отсутствует (использует
default
)
- присутствует и не имеет дополнительного значения (использует
const
)
- опция присутствует и имеет значение (использует переданное значение)
Предполагая, что вы хотите, чтобы -s
и -s Hello
выполняли то же самое, вы можете использовать
parser = argparse.ArgumentParser(description = "Some desc.")
parser.add_argument("-s", nargs='?', const='Hello', default = None)
тогда вы можете проверить это:
>>> parser.parse_args([])
Namespace(s=None)
>>> parser.parse_args(["-s"])
Namespace(s='Hello')
>>> parser.parse_args(["-s", 'Hello'])
Namespace(s='Hello')
>>> parser.parse_args(["-s", 'foo'])
Namespace(s='foo')