Итак, у меня есть скрипт python для синтаксического анализа и печати данных из текстовых файлов. Обработка аргументов выполняется с помощью модуля argparse. Проблема состоит в том, что некоторые аргументы являются необязательными, например. один из них используется для добавления текстовых аннотаций на сюжет. Этот аргумент отправляется на функцию построения через ** kwargs. Мой вопрос: какой самый pythonic способ обрабатывать эти необязательные аргументы? Некоторый псевдокод здесь:Обработка необязательных аргументов Python argaprse
parser = argparse.ArgumentParser()
...
parser.add_argument("-o", "--options", nargs="+", help="additional options")
args = parser.parse_args()
...
def some_function(arguments, **kwargs):
doing something with kwargs['options']
return something
...
arguments = ...
some_function(arguments, options=args.options)
Если параметры не заданы по умолчанию, то не назначено значение. И это вызывает некоторые проблемы. Что еще более pythonic - как-то проверить 'опции' в some_function? Или, возможно, проанализировать аргументы перед вызовом some_function?
Есть другие SO вопросы о преобразовании 'argparse' аргументы в 'kwargs', или принимать словарь как входы, которые могут быть переданы. Ваш аргумент 'options' просто создает список строк. – hpaulj
Об использовании 'argparse' с' kwargs': http://stackoverflow.com/questions/33712615/using-argparse-with-function-that-takes-kwargs-argument – hpaulj