クラス インスタンスの__dict__
属性は、特定のオブジェクトをクラス インスタンスにマッピングするのに非常に役立ちdict
ます (dict のキーがプロセスでクラス インスタンス属性になります)。
例:
>>> class SomeClass(object):
... def __init__(self):
... self.numbers = [1, 3, 5, 7, 9]
...
>>> inst = SomeClass()
>>> inst.__dict__
{'numbers': [1, 3, 5, 7, 9]}
>>> inst.__dict__.update({
... 'letters': ['a', 'b', 'c', 'd'],
... 'numbers': [2, 4, 6, 8, 10]
... })
>>> inst.letters, inst.numbers
(['a', 'b', 'c', 'd'], [2, 4, 6, 8, 10])
ただし、クラス属性が次のように宣言されている場合、これは機能しません。
>>> class SomeClass(object):
... numbers = [1, 3, 5, 7, 9]
...
>>> inst = SomeClass()
>>> inst.__dict__
{}
この場合、それらにアクセスする方法はありますか? つまり、メソッドやデフォルト属性などの他の特別なクラス属性とは別にそれらをリストする方法はありますか?