ホームページ >バックエンド開発 >Python チュートリアル >Python クラス内のメソッドのリストを取得するにはどうすればよいですか?

Python クラス内のメソッドのリストを取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-29 20:40:02288ブラウズ

How to Obtain a List of Methods within a Python Class?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。