クラスの特殊メソッド オブジェクトを辞書型のように扱いたい __setitem__

Pythonのクラスにおいて、オブジェクトを辞書型 ({}) のように扱うための特殊メソッドとして、__setitem__ メソッドを定義できます。このメソッドを実装することで、インデックスやキーを使用してオブジェクトに値を設定できます。

__setitem__ メソッドは、オブジェクトが辞書型のように動作するようにカスタマイズできます。このメソッドを実装すると、特定のキーに対応する値を設定できます。

以下は、__setitem__ メソッドを使ってカスタムクラス内でオブジェクトを辞書型のように扱う例です:

python
class MyDictionary: def __init__(self): self.data = {} def __setitem__(self, key, value): self.data[key] = value def __getitem__(self, key): return self.data[key] # インスタンスを作成 my_dict = MyDictionary() # キーと値を設定 my_dict['name'] = 'Alice' my_dict['age'] = 30 # キーを指定して値を取得 name = my_dict['name'] age = my_dict['age'] print(name) # 結果: 'Alice' print(age) # 結果: 30

この例では、MyDictionary クラス内に __setitem__ メソッドが定義されており、このメソッドは指定されたキーに対応する値を設定します。my_dict['name'] = 'Alice' のようにキーと値を指定すると、__setitem__ メソッドが実行されてキーと値がオブジェクトに設定されます。

__setitem__ メソッドを実装することで、カスタムクラスのオブジェクトを辞書型のように扱うことができ、オブジェクトに動的な属性を追加したり、カスタムデータ構造を操作したりすることが可能です。