ホームページ >バックエンド開発 >Python チュートリアル >Python クラス内のメソッドのリストを取得するにはどうすればよいですか?
Python クラスのメソッドのリストを取得する
クラスのメソッドを反復処理したり、そのメソッドに基づいてオブジェクトを異なる方法で処理するには、それらのメソッドのリスト。この記事では、これを実現するための 2 つのアプローチを紹介します。
inspect.getmembers() の使用
この関数は、最初の引数としてクラスまたはインスタンスを受け取り、その引数として述語関数を受け取ります。 2 番目の引数。述語関数は、特定の基準に基づいて返されたリストをフィルター処理します。クラス内のメソッドのリストを取得するには、inspect.ismethod を述語関数として渡すことができます。
<code class="python">from inspect import getmembers, ismethod class MyClass: def method1(self): pass def method2(self): pass # Python 2.x methods = getmembers(MyClass, ismethod) # Python 3.x methods = getmembers(MyClass, isfunction)</code>
methods 変数にはタプルのリストが含まれ、各タプルにはメソッド名とメソッド オブジェクトが含まれます。 .
dir() の使用
dir() 関数は、メソッドを含むオブジェクトのすべての属性のリストを返します。ただし、メソッド以外の属性も含まれており、追加のフィルタリングが必要になる場合があります。
<code class="python">methods = [m for m in dir(MyClass) if callable(getattr(MyClass, m))]</code>
callable() フィルターは、属性が呼び出し可能かどうかをチェックし、メソッドを示します。このアプローチには非メソッド属性が含まれる可能性があるため、inspect.getmembers() を使用する場合ほど信頼性が低い可能性があることに注意してください。
以上がPython クラス内のメソッドのリストを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。