In Python 2.x (io uso 2.7), qual è il modo corretto di utilizzare gli argomenti predefiniti con *argse **kwargs?
Ho trovato una domanda su SO relativa a questo argomento, ma è per Python 3 :
Chiamare una funzione Python con * args, ** kwargs e argomenti opzionali / predefiniti
Lì, dicono che questo metodo funziona:
def func(arg1, arg2, *args, opt_arg='def_val', **kwargs):
#...
In 2.7, risulta in a SyntaxError. Esiste un modo consigliato per definire una tale funzione?
Ho funzionato in questo modo, ma immagino che ci sia una soluzione migliore.
def func(arg1, arg2, *args, **kwargs):
opt_arg ='def_val'
if kwargs.__contains__('opt_arg'):
opt_arg = kwargs['opt_arg']
#...