2011-09-17 10 views
2

可能性の重複:例えば
Getting list of parameters inside python functionPythonでパラメータの名前を関数に問い合わせるにはどうすればよいですか?

私は

def foo(a, b='B'): return 

を持って想定は、どのように私は、それがデフォルト値だとして「B」を持っている「」、およびパラメータ「b」を、パラメータを必要としていたことを私に教えてFOOを求めることができますか?

+0

あなたは 'help(foo)'でそれを見ることができます – JBernardo

+0

@JBernardoこれは人間にとっては機能しますが、私のプログラムはその情報にどのようにアクセスできますか?おそらく、ヘルプは私が探しているメカニズムを使用します。 – allyourcode

答えて

4

inspect.getargspecを使用してください。

def foo(a, b='B'): pass 

import inspect 
print inspect.getargspec(foo) 

デフォルトはのためですが、デフォルト以外の引数はデフォルト引数をたどることができないので、デフォルトでは、第二引数になるように持っている引数は不明のように見えることがあります。

編集:リンク重複がある答えはあなたがfunc.func_code.co_varnamesfunc.func_defaultsまたはfunc.__defaults__を使用して、inspectせずに、同じ情報を得ることができます示して、良いです。

+0

リンク +明らかに不明瞭なものの説明 +代替ソリューション =メガ素晴らしい答え!!! :D – allyourcode

関連する問題