Принятие аргументов argparse - PullRequest
0 голосов
/ 02 июня 2018

В чем разница между nargs='*' и nargs='+'?

Поскольку они оба принимают один или несколько аргументов.

parser.add_argument('nums',narg='*')

И

parser.add_argument('nums',narg='+')

1 Ответ

0 голосов
/ 02 июня 2018

argparse соответствует общему использованию в синтаксисе re.цитата из https://docs.python.org/3/library/re.html

* Приводит к тому, что результирующее RE совпадает с 0 или более повторениями предыдущего RE, с максимально возможным числом повторений.ab * будет соответствовать 'a', 'ab' или 'a', за которым следует любое количество 'b.

+ Приводит к тому, что результирующий RE совпадает с 1 или более повторениями предыдущего RE.ab + будет соответствовать «a», за которым следует любое ненулевое число «b»;это не будет соответствовать просто «а».

?Приводит к тому, что результирующее RE совпадает с 0 или 1 повторениями предыдущего RE.абы?будет соответствовать 'a' или 'ab'.

https://docs.python.org/3/library/argparse.html#nargs

Вы также можете использовать argparse константы, которые имеют одинаковые строковые значения

argparse.ONE_OR_MORE
argparse.ZERO_OR_MORE
argparse.OPTIONAL
...