Il seguente codice:kwargs Pass con chiave = coppie di valori validi per funzionare
def f(a=1):
pass
kwargs = {}
kwargs['a'] = 1
kwargs['b'] = 2
f(**kwargs)
(correttamente) solleva un'eccezione:
Traceback (most recent call last):
File "tt.py", line 8, in <module>
f(**kwargs)
TypeError: f() got an unexpected keyword argument 'b'
Esiste un modo, con functools o altro, per ottenere attorno a questo e capire quali argomenti non sono stati utilizzati dalla funzione per poterli passare ad un'altra funzione? Per esempio, potrei avere un'altra funzione:
def g(a=None, b=None):
pass
che voglio chiamare dopo, ad es.
g(**kwargs)
ma voglio solo b
da passare perché a
era gia 'utilizzato up' nella funzione precedente.
Ora so che questa non è la codifica ideale, ma ci sono casi in cui può tornare utile, ed è in realtà facile da spiegare all'utente, ad es. "I parametri aggiuntivi saranno passati a f, e tutti i parametri non passati a f saranno passati a g".