vars()
オブジェクトの dict属性 を辞書型で返します。引数を指定しないことで locals関数 と同じようにローカル領域の属性を取得できます。
モジュール、クラス、インスタンス、または、それ以外のdict属性を持つオブジェクトの、dict属性を返します。
モジュールやインスタンスのようなオブジェクトは、更新可能なdict属性を持っています。
ただし、それ以外のオブジェクトでは、dict属性への書き込みが制限されている場合があります。
書き込みに制限がある例としては、辞書を直接更新されることを防ぐために、types.MappingProxyTypeを使っているクラスがあります。
使用例
class Object:
a = 1
def __init__(self):
self.b = 2
self._c = 3
self.__d = 4
e = 5
def f(self):
pass
@property
def d(self):
return self.__d
@d.setter
def d(self, other):
self.__d = other
obj = Object()
print(vars(obj))
# 実行結果 {'b': 2, '_c': 3, '_Object__d': 4}