В Python 2.x (я использую 2.7), как правильно использовать аргументы по умолчанию с *argsи **kwargs?
Я нашел вопрос по SO, связанный с этой темой, но он касается Python 3 :
вызов функции Python с * args, ** kwargs и необязательными / аргументами по умолчанию
Там говорят, что этот метод работает:
def func(arg1, arg2, *args, opt_arg='def_val', **kwargs):
#...
В 2.7 это приводит к файлу SyntaxError. Есть ли рекомендуемый способ определения такой функции?
У меня это работает таким образом, но я думаю, что есть более хорошее решение.
def func(arg1, arg2, *args, **kwargs):
opt_arg ='def_val'
if kwargs.__contains__('opt_arg'):
opt_arg = kwargs['opt_arg']
#...