Вопрос, как говорится, содержит немного непонимания, или у меня большой.
* ключевое слово и ** ключевое слово предназначены для передачи параметров/материала классам/функциям/методам ВНУТРИ кода питона.
argparse используется для передачи аргументов/опций в программу python извне/в командной строке. Таким образом, вы не получите 1 на 1 репликацию. Однако argparse довольно настраивается, и в зависимости от того, как вы хотите это сделать, вы можете приблизиться.
Если вы хотите, чтобы передать одно имя, то:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("name")
args = parser.parse_args()
print args
позволит вам:
$ ./pytest.py dave
Namespace(name='dave')
Если вы хотите установить имя, так что вы можете отправить другие вещи, а также:
parser.add_argument("-name")
Позвольте вам:
./pytest.py -name dave
Namespace(name='dave')
но извещение:
./pytest.py -name dave -name steve
Namespace(name='steve')
Однако:
parser.add_argument("--name")
позволит/потребовать:
./pytest.py --name dave
Namespace(name='dave')
./pytest.py --name=dave
Namespace(name='dave')
и если вы:
parser.add_argument("--name", nargs="+")
./pytest.py --name dave steve murphy
Namespace(name=['dave', 'steve', 'murphy'])
Но:
./pytest.py --name=dave --name=steve --name=murphy
Namespace(name= ['murphy'])
(обратите внимание, что это последний один список только Murphy в нем.)
Так что вы можете сделать, это:
parser.add_argument("--name")
parser.add_argument("--email")
parser.add_argument("--hair-color")
./pytest.py --name fred --hair-color murphy --email [email protected]
Namespace(email='[email protected]', hair_color='murphy', name='fred')
Эта ссылка может помочь HTTP://stackoverflow.com/a/22045954/1394473 – tom