Come documentare ** kwargs in python? [chiuso]

1

Ho una funzione che ha un gran numero di argomenti.

Voglio avere i nomi degli argomenti disponibili nella funzione help (), ma voglio i risultati come un dettato.

Al momento, ho il seguente:

def myfunc(thisparameter,thatparameter,hostname,password,port,service,url,someotherparameter, etc, andsoforth):
   return some_function(dict(thisparameter=thisparameter,thatparameter=thatparameter,hostname=hostname,port=port,service=service,url=url,someotherparameter=someotherparameter, etc=etc, andsoforth=andsoforth))

Non posso semplicemente usare kwargs, poiché ciò significa che la funzione help () non mostrerà i parametri. Ho molti di questi. Capisco che posso usare __doc__ , ma che mostra comunque i parametri come ** kwargs.

    
posta AMADANON Inc. 26.11.2015 - 21:45
fonte

1 risposta

1

Potresti utilizzare locals() hack proposto in questa domanda SO , in questo modo:

def myfunc(thisparameter,thatparameter):
  return some_function(**locals())

Questo ti permette di esplicitare argomenti a myfunc e chiamare la tua implementazione senza la necessità di ripetere tutti gli argomenti.

Non è a prova di proiettile. Per una versione più "sicura" potresti usare inspect .

(Come nota a margine, sto segnalando questa domanda per la migrazione a SO. Non sono però così sicuro se si tratta di un duplicato come hai la torsione di aiuto che non è menzionata nella domanda SO)

    
risposta data 27.11.2015 - 12:17
fonte

Leggi altre domande sui tag