C'è un modo per ottenere i nomi degli argomenti che una funzione richiede?Nome argomento funzione elenco Python
def foo(bar, buz):
pass
magical_way(foo) == ["bar", "buz"]
C'è un modo per ottenere i nomi degli argomenti che una funzione richiede?Nome argomento funzione elenco Python
def foo(bar, buz):
pass
magical_way(foo) == ["bar", "buz"]
utilizzare il metodo inspect dalla libreria standard di Python (il modo più solido pulito per eseguire l'introspezione).
In particolare, inspect.getargspec(f)
restituisce i nomi ei valori predefiniti degli argomenti f
s' - se desideri solo i nomi e non si cura di forme speciali *a
, **k
,
import inspect
def magical_way(f):
return inspect.getargspec(f)[0]
completamente incontra i tuoi requisiti espressi.
puoi anche usare 'return inspect.getargspec (f) .args' –
@gnibbler, true, in Python 2.6 o solo meglio (quindi ** non ** se stai usando Python con App Engine (o app che incorporano Python 2.5 o prima), ho dato l'approccio che funziona in qualsiasi Python (dal 2.1 quando 'inspect' è stato aggiunto alla libreria standard) –
Impressionante, grazie mille! – Bemmu
>>> import inspect
>>> def foo(bar, buz):
... pass
...
>>> inspect.getargspec(foo)
ArgSpec(args=['bar', 'buz'], varargs=None, keywords=None, defaults=None)
>>> def magical_way(func):
... return inspect.getargspec(func).args
...
>>> magical_way(foo)
['bar', 'buz']
Si noti che '.args' funziona solo con Python 2.6 e versioni successive Per le versioni precedenti devi usare' [0] 'invece. – Wolph
+1 per fornire la funzione' magical_way() '. –
Duplicate: http://stackoverflow.com/questions/582056/getting-list-of-parameters-inside-python-function, http://stackoverflow.com/questions/218616/getting-method- parameter-names-in-python –
Forse un altro è giustificato, dal momento che ho passato una buona mezz'ora a provare a Google questo senza colpire quei maledetti. – Bemmu
Questo è il primo successo su Google ora, grazie al modo in cui OP ha posto la domanda. Rendere le risposte più facili da trovare inquadrando meglio la domanda è sicuramente rilevante per UX di coloro che cercano risposte. – episodeyang