Sur Python 2.x (j'utilise 2.7), ce qui est la bonne façon d'utiliser les arguments par défaut avec *args
y **kwargs
?
J'ai trouvé une question sur SO en rapport avec ce sujet, mais elle est pour Python 3 :
Appel d'une fonction Python avec *args, **kwargs et arguments optionnels / par défaut
Là-bas, ils disent que cette méthode fonctionne :
def func(arg1, arg2, *args, opt_arg='def_val', **kwargs):
#...
En 2.7, cela se traduit par un SyntaxError
. Existe-t-il une méthode recommandée pour définir une telle fonction ?
J'ai réussi à le faire fonctionner de cette façon, mais je suppose qu'il existe une solution plus agréable.
def func(arg1, arg2, *args, **kwargs):
opt_arg ='def_val'
if kwargs.__contains__('opt_arg'):
opt_arg = kwargs['opt_arg']
#...