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
クラスのvar1
とvar2
という2つの変数名を出力します。
vars()
関数を使用する方法
vars()
関数は、オブジェクトの属性とその値を辞書として返します。これを使用すると、クラスの変数名とその値を同時に取得できます。
class Example:
var1 = "Hello"
var2 = "World"
example = Example()
print(vars(example))
このコードは、{'var1': 'Hello', 'var2': 'World'}
という辞書を出力します。
以上がPythonでクラス変数を列挙する主な方法です。適切な方法を選択して、コードをより効率的に作成しましょう。