все Python 3argparseпонятие
argparse.Namespace
парсер
Простой объект с атрибутами, который возвращает parse_args(): каждый аргумент становится атрибутом, а vars() превращает его в обычный словарь.
Синтаксис
args = parser.parse_args(...); args.name; vars(args)
Имя атрибута берётся из dest, а дефисы в нём заменяются подчёркиваниями: опция '--max-size' читается как args.max_size, а не args['max-size'] — квадратные скобки дадут TypeError, Namespace не словарь. Для словаря есть vars(args), например чтобы передать аргументы в функцию через **. Оператор in и сравнение == с другим Namespace работают; можно передать свой объект через parse_args(namespace=obj).
Примеры
import argparse
parser = argparse.ArgumentParser(prog='app')
parser.add_argument('--max-size', type=int)
args = parser.parse_args(['--max-size', '5'])
print(args.max_size, vars(args)) # → 5 {'max_size': 5}
print(args == argparse.Namespace(max_size=5)) # → True
import argparse
args = argparse.Namespace(name='Anna')
try:
print(args['name'])
except TypeError as e:
print(e) # → 'Namespace' object is not subscriptable
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности