В 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 это приводит к a SyntaxError
. Есть ли рекомендуемый способ определения такой функции?
Я работал над этим так, но я думаю, что есть более приятное решение.
def func(arg1, arg2, *args, **kwargs):
opt_arg ='def_val'
if kwargs.__contains__('opt_arg'):
opt_arg = kwargs['opt_arg']
#...