\

Pythonでクラスのメンバ変数を列挙する方法について説明します。これは、クラスの属性を動的に取得したい場合や、クラスの内部状態をデバッグしたい場合などに役立ちます。

dir()関数を使用する方法

Pythonのdir()関数は、オブジェクトのすべての属性名をリストとして返します。これには、メソッド名も含まれます。したがって、メソッドを除外し、変数だけを取得するには、以下のようにcallable()関数と組み合わせて使用します。

class Example:
    var1 = "Hello"
    var2 = "World"

    def method1(self):
        pass

example = Example()
members = [attr for attr in dir(example) if not callable(getattr(example, attr)) and not attr.startswith("__")]
print(members)

このコードは、Exampleクラスのvar1var2という2つの変数名を出力します。

vars()関数を使用する方法

vars()関数は、オブジェクトの属性とその値を辞書として返します。これを使用すると、クラスの変数名とその値を同時に取得できます。

class Example:
    var1 = "Hello"
    var2 = "World"

example = Example()
print(vars(example))

このコードは、{'var1': 'Hello', 'var2': 'World'}という辞書を出力します。

以上がPythonでクラス変数を列挙する主な方法です。適切な方法を選択して、コードをより効率的に作成しましょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です