Я только что заметил поведение в argparse, которое озадачило меня (наверное, я никогда не использовал его для глупого списка файлов раньше):
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('multi', action='append', nargs='+')
print(parser.parse_args())
Это дает мне вывод:
~$ ./testargs.py foo bar baz
Namespace(multi=[['foo', 'bar', 'baz']])
~$
Я ожидал, что multi
будет ['foo', 'bar', 'baz']
, а не списком в списке.Как есть, мне придется схватить args.multi[0]
перед обработкой, что не имеет большого значения, но похоже на уродливую бородавку, и я хотел бы понять, почему это там.
Я такойделать что-то глупое в add_argument
, или это просто неизбежная причуда?