私はtuple
ラッパーであり、タプルはアイテムの突然変異をサポートしていないクラスを作成しました。 __setitem__
と__delitem__
の実装を残すか、たとえば次のようなメソッドを実装する必要があります。以下のようになります(したがって、拒否された遺贈のコードのにおいの種類になります)?どちらのアプローチがより無性であるか?そのような場合にカスタム例外は改善されませんか?Python:使用すべきでない魔法のメソッド
def __setitem__(self, key, value):
"""
:raise: Always.
:raises: TypeError
"""
self.data_set[key] = value # Raise from tuple.
def __delitem__(self, key):
"""
:raise: Always.
:raises: TypeError
"""
raise TypeError("Item deletion is unsupported") # Custom exceptions thrown.
私はこのクラスが '__setitem__'と' __delitem__'を実装すると主張していますが、その動作はそれらの操作をサポートしていないことを示しています。 – JCode
AOK。実際に(私が言及したように)目標がアイテムの割り当てと削除をサポートしない場合、実際にはこれらのメソッドを実装するのは意味をなさない。 –