Pythonでモジュールに定義されているクラス一覧を取得するには、inspect
モジュールを使用します。以下は、inspect
モジュールを使って、モジュール内のクラスをリストアップする方法の例です。
import inspect import my_module # モジュール名を適宜変更する classes = [] for name, obj in inspect.getmembers(my_module): if inspect.isclass(obj): classes.append(name) print(classes)
上記のコードでは、my_module
というモジュール内のクラス一覧を取得しています。inspect.getmembers()
関数を使用することで、モジュール内で定義されているすべての名前とオブジェクトを取得できます。そして、inspect.isclass()
関数を使用して、オブジェクトがクラスであるかどうかを判定しています。クラスであれば、その名前をリストに追加しています。
インタラクティブモードで実行した結果がこちら。
# python Python 3.9.2 (default, Mar 12 2021, 04:06:34) [GCC 10.2.1 20210110] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import inspect >>> import pcf8574 >>> classes = [] >>> for name, obj in inspect.getmembers(pcf8574): ... if inspect.isclass(obj): ... classes.append(name) ... >>> print(classes) ['IOPort', 'PCF8574']
このようにして、モジュール内のクラスをリストアップすることができます。なお、上記のコードではクラス名だけをリストアップしていますが、必要に応じてクラスオブジェクトそのものをリストアップすることも可能です。