Python Glossary English

все 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Сообщить о неточности