En Python 2.x (yo uso 2.7), ¿cuál es la forma correcta de usar los argumentos predeterminados con *argsy **kwargs?
Encontré una pregunta sobre SO relacionada con este tema, pero esa es para Python 3 :
llamar a una función de Python con * args, ** kwargs y argumentos opcionales / predeterminados
Allí, dicen que este método funciona:
def func(arg1, arg2, *args, opt_arg='def_val', **kwargs):
#...
En 2.7, resulta en un SyntaxError. ¿Existe alguna forma recomendada de definir dicha función?
Lo hice funcionar de esta manera, pero supongo que hay una mejor solución.
def func(arg1, arg2, *args, **kwargs):
opt_arg ='def_val'
if kwargs.__contains__('opt_arg'):
opt_arg = kwargs['opt_arg']
#...