メソッドのパラメータ名の取得
次のような定義された関数があるとします。
def a_method(arg1, arg2): pass
引数名を取得するにはどうすればよいですか("arg1", "arg2") のような文字列のタプルとして。
検査モジュールの使用
検査モジュールを使用すると、コード オブジェクトを検査して取得できます。彼らの特性。 a_method の引数名を取得するには、inspect.getfullargspec():
>>> inspect.getfullargspec(a_method) (['arg1', 'arg2'], None, None, None)
を使用します。結果は、引数名と、args や * の名前などの追加情報で構成されます。 kwargs 変数とそのデフォルト値。
def foo(a, b, c=4, *arglist, **keywords): pass >>> inspect.getfullargspec(foo) (['a', 'b', 'c'], 'arglist', 'keywords', (4,))
inspect.signature() の使用
Python 3.3 以降では、inspect.signature() を使用して取得できます。呼び出し可能オブジェクトの呼び出し署名:
>>> inspect.signature(foo) <Signature (a, b, c=4, *arglist, **keywords)>
これにより、パラメーターのタイプやデフォルト値を含む、より詳細な署名が提供されます。
注: Python の一部の呼び出し可能オブジェクト特に CPython の C で定義されたものは、内省できない場合があります。このような場合、inspect.getfullargspec() は ValueError を発生させます。
以上がPython でメソッドのパラメータ名を取得するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。