\

Pythonでは、オブジェクトが持つ属性とその値を格納する辞書を返す特殊属性として__dict__があります。この属性はモジュール、クラス、インスタンスなどで参照可能ですが、文字列・リスト・辞書には__dict__属性が無いので参照不可能です。

例えば、以下のようなクラスMyClassがあるとします。

class MyClass:
    def __init__(self, x, y):
        self.x = x
        self.y = y

このクラスのインスタンスを作成して__dict__を参照すると、MyClassに定義されたx,yという属性に引数で与えられた値1,2が関連付けられていることが分かります。

obj = MyClass(1, 2)
print(obj.__dict__)  # {'x': 1, 'y': 2}

また、__dict__は辞書内の値を追加/更新/削除することも可能です。

#追加
obj.__dict__['z'] = 3
print(obj.__dict__)  # {'x': 1, 'y': 2, 'z': 3}

#更新
obj.__dict__['x'] = 4
print(obj.__dict__)  # {'x': 4, 'y': 2, 'z': 3}

#削除
del obj.__dict__['x']
print(obj.__dict__)  # {'y': 2, 'z': 3}

このように、Pythonの__dict__属性はオブジェクトの属性とその値を操作するための強力なツールです。しかし、その使用は注意が必要です。適切な使用方法と注意点を理解した上で、__dict__属性を活用してPythonプログラミングをより効率的に行いましょう。

投稿者 admin

コメントを残す

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