Sono nuovo in Python e voglio sapere se c'è un modo semplice per ottenere la quantità di parametri passati nella funzione Python.Controlla il numero di parametri passati in funzione Python
a(1, 2, 3) ==>3
a(1, 2) ==>2
Sono nuovo in Python e voglio sapere se c'è un modo semplice per ottenere la quantità di parametri passati nella funzione Python.Controlla il numero di parametri passati in funzione Python
a(1, 2, 3) ==>3
a(1, 2) ==>2
È possibile farlo utilizzando i locali()
E 'importante notare, che questo dovrebbe essere fatto come in ultima analisi, il primo passo nel metodo. Se introduci una nuova variabile nel tuo metodo, cambierai i risultati. Quindi assicuratevi di seguire in questo modo:
def a(a, b, c):
# make this your first statement
print(len(locals()))
Se avete fatto queste cose:
def a(a, b, c):
z = 5
print(len(locals()))
Si potrebbe finire per ottenere 4, che non sarebbe giusto per i risultati attesi.
documentazione sul locals()
Probabilmente vale la pena menzionare che devi farlo prima di aver eseguito qualsiasi compito all'interno della funzione affinché funzioni. – Marius
Grazie a @ Mario, buona telefonata. L'ho cambiato, fammi sapere cosa ne pensi. – idjaw
Grazie, in realtà userò all'inizio della funzione. – JasmineOT
def a(*args, **kwargs):
print(len(args) + len(kwargs))
Sto dando +1 a questo anwer, perché il conteggio degli argomenti all'interno di una funzione ha senso solo quando ci sono quantità variabili di essi. – VPfB
si potrebbe anche cambiare l'ingresso per la funzione a un elenco, in modo da avere una funzione:
a(your_list)
quindi sapere quanti argomenti sono stati passati al la funzione, si potrebbe semplicemente fare:
print len(your_list)
Tuttavia, ciò significa che si modifica il tipo di input per la propria funzione, da molte variabili di input a una sola, l'elenco (che può avere un numero variabile di elementi).
Possibile duplicato di [Ottenere lista dei nomi dei parametri all'interno della funzione python] (http://stackoverflow.com/questions/582056/getting-list-of-parameter-names-inside-python-function) – TigerhawkT3
Un'altra possibilità [qui ] (http://stackoverflow.com/questions/218616/getting-method-parameter-names-in-python). – TigerhawkT3
E potrei anche dire che questo è un [XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). – TigerhawkT3