2016-04-22 13 views
2

pythonの関数の潜在的なキーワード引数をコマンドラインから見つける方法はありますか?ソースやドキュメントを見ることなく場合によってはソースが表示されない場合もあります。pythonの関数のすべてのkwargをcliから見つける方法はありますか?

+3

'help(whatever_function)'? – jonrsharpe

+0

定義では、kwargsを使用すると、すべての可能なキー値ペアがキーワード候補になります – Natecat

答えて

0

inspectモジュールを使用できます。 3.3+では、これはすぐにリンクのdocの下にinspect.signature

import inspect 

def foo(bar=None, baz=None): 
    pass 

>>> print(inspect.signature(foo)) 
(bar=None, baz=None) 

を使用して、簡単すぎて読むに値するかもしれキーワードのみの引数の名前だけを、引き出すexampleです!

もちろん、**kwargs引数から引き出された何かを試してみるためにソースコードを深く調べたいのであれば、おそらく運が悪いです。次のようなもの:

def foo(**kwargs): 
    if kwargs.get("isawesome"): 
     print("Dang you're awesome") 

>>> some_magic(foo) 
isawesome 

おそらく見つからないでしょう。

+1

これはCで書かれたすべての組み込み関数では機能しません。通常は名前付き引数はまったくありません。 .signature(sum) 'とするとエラーになります。 – alexis

+0

良い点! Pythonで書かれていない関数のシグネチャを検査する方法があるかどうかはわかりません。 –

関連する問題