我創建了一個類,它是一個tuple
包裝器,元組不支持項目突變。 我應該離開__setitem__
和__delitem__
的實現或實現像例如下面(因此屬於Refused Bequest代碼的氣味)?哪種方法更pythonic?在這種情況下,定製異常是否更好?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。實際上(正如我提到的),如果目標是不支持項目分配和刪除,那麼確實實現這些方法是沒有意義的。 –