W Pythonie 2.x (ja używam 2.7), jaki jest właściwy sposób używania domyślnych argumentów z *argsi **kwargs?
Znalazłem pytanie na SO związane z tym tematem, ale to jest dla Pythona 3 :
Wywołanie funkcji Pythona z * args, ** kwargs i opcjonalnymi / domyślnymi argumentami
Tam mówią, że ta metoda działa:
def func(arg1, arg2, *args, opt_arg='def_val', **kwargs):
#...
W wersji 2.7 powoduje to SyntaxError. Czy jest jakiś zalecany sposób zdefiniowania takiej funkcji?
Mam to w ten sposób, ale myślę, że jest lepsze rozwiązanie.
def func(arg1, arg2, *args, **kwargs):
opt_arg ='def_val'
if kwargs.__contains__('opt_arg'):
opt_arg = kwargs['opt_arg']
#...