Argparse'ı, seçimlerin açık bir listesi olan bir Python 3 uygulamasında kullanmaya çalışıyorum, ancak hiçbiri belirtilmemişse, varsayılan değerdir.python argparse seçimleri varsayılan seçenek
Ben kodudur:
parser.add_argument('--list', default='all', choices=['servers', 'storage', 'all'], help='list servers, storage, or both (default: %(default)s)')
args = parser.parse_args()
print(vars(args))
Ancak, ben bu çalıştırdığınızda ben bir seçenek şu olsun:
$ python3 ./myapp.py --list all
{'list': 'all'}
Ya bir seçenek olmadan:
$ python3 ./myapp.py --list
usage: myapp.py [-h] [--list {servers,storage,all}]
myapp.py: error: argument --list: expected one argument
Burada bir şey mi eksik? Ya da belirtilen seçeneklerle bir varsayılan değere sahip olamaz mıyım?
--list' hiç ve varsayılan olacaktır 'geçmek yok Kullanılmış. – ShadowRanger
Anladım ... Bu listeye, oluşturmaya, silmeye vb. Anlatmam gerekmesi dışında işe yarar. – MVanOrder
İstediğiniz gibi geliyor [subcommands] (https://docs.python.org/3/ kütüphane/argparse.html # alt komutlar), hiç bir anahtar değil. 'Nargiler' ile '-' bile, '--list' arasındaki farkı söyleyemezsiniz ve varsayılan bir ayar olduğunda hiçbir şeyi geçemezsiniz. – ShadowRanger