Voglio chiamare qualche funzione sconosciuta con l'aggiunta di parametri usando la funzione getattr. È possibile?Come avviare la funzione getattr in python con parametri aggiuntivi?
22
A
risposta
40
Sì, ma non li si passa a getattr()
; tu chiami la funzione come normale una volta che hai un riferimento ad essa.
getattr(obj, 'func')('foo', 'bar', 42)
23
Se si desidera richiamare un metodo dinamico con un elenco dinamico di argomenti/argomenti a parola chiave, è possibile effettuare le seguenti operazioni:
function_name = 'wibble'
args = ['flip', 'do']
kwargs = {'foo':'bar'}
getattr(obj, function_name)(*args, **kwargs)
Grazie per l'approccio kwargs aggiuntivi. – dave4jr