クラスのプロパティ情報を取得する方法
全てのプロパティ名と値を取得
モジュール、クラス、インスタンスなどは、__dict__属性を持っています。 この__dict__属性のitemsメソッドを使うと、全プロパティの名前と値を取得できます。
例 全プロパティの名前と値を表示
class Test:
def __init__(self):
self.title = '題名'
self.name = '名前'
test = Test()
for key, value in test.__dict__.items():
print(key, ':', value))
これを実行すると以下のように表示されます。
Testクラスのインスタンスtestの全プロパティと値を表示しています。
name : 名前 title : 題名
名前だけを取得
全プロパティの名前だけ取得したい場合は、__dict__属性のkeysメソッドを使います。
例 全プロパティの名前だけ表示
class Test:
def __init__(self):
self.title = '題名'
self.name = '名前'
test = Test()
for key in test.__dict__.keys():
print(key)
これを実行すると以下のように表示されます。
Testクラスのインスタンスtestの全プロパティ名を表示しています。
name title
値だけを取得
全プロパティの値だけ取得したい場合は、__dict__属性のvaluesメソッドを使います。
例 全プロパティの値だけ表示
class Test:
def __init__(self):
self.title = '題名'
self.name = '名前'
test = Test()
for value in test.__dict__.values():
print(value))
これを実行すると以下のように表示されます。
Testクラスのインスタンスtestの全プロパティ名を表示しています。
名前 題名
vars
組み込み関数のvarsを使うことでも可能です。 vars関数は、モジュール、クラス、インスタンスなどが持っている__dict__属性を返してくれます。
例
class Test:
def __init__(self):
self.title = '題名'
self.name = '名前'
test = Test()
print(vars(test))
これを実行すると以下のように表示されます。
{'name': '名前', 'title': '題名'}