Ho una funzione Python che accetta diversi argomenti. Alcuni di questi argomenti potrebbero essere omessi in alcuni scenari.
def some_function (self, a, b, c, d = None, e = None, f = None, g = None, h = None):
#code
Gli argomenti d
attraverso h
sono stringhe che hanno ognuna significati diversi. È importante poter scegliere quali parametri opzionali passare in qualsiasi combinazione. Ad esempio,, (a, b, C, d, e)
oppure (a, b, C, g, h)
, oppure (a, b, C, d, e, f
oppure tutti (queste sono le mie scelte).
Sarebbe bello se potessi sovraccaricare la funzione, ma ho letto che Python non supporta il sovraccarico. Ho provato a inserire alcuni degli argomenti int richiesti nell'elenco e ho riscontrato un errore di mancata corrispondenza dell'argomento.
In questo momento sto inviando stringhe vuote al posto dei primi pochi argomenti mancanti come segnaposto. Vorrei poter chiamare una funzione usando solo i valori reali.
C'è un modo per fare questo? Posso passare un elenco anziché l'elenco degli argomenti?
In questo momento il prototipo che utilizza i tipi è simile a:
_fdll.some_function.argtypes = [c_void_p, c_char_p, c_int, c_char_p, c_char_p, c_char_p, c_char_p, c_char_p]