3
我的class Item
描述了某些項目,它們的數字ID(0,1,2,...)自然是已知的。我已經在類中實現了一個註冊表,該註冊表通過其ID來索引所有對象。我也有通過ID檢索對象的方法:Python:可自定義的類
class Item
_registry = []
def __init__(self):
self._registry.append(self)
# ...
@classmethod
def get_item_by_id(cls, k):
return cls._registry[k]
# ...
這是一個合理的設計?
假設是這樣,允許爲Item
類本身設置下標嗎?我可以(我認爲)在Item
的元類中定義了__getitem__
,因此允許語法Item[2]
而不是Item.get_item_by_id(2)
。
如果它有任何問題(例如,太奇怪,會導致不良副作用等),請告訴我。
這就是'__getitem__'的用途... – Adam 2011-04-24 23:48:15
nitpick:我想第4行應該讀取'self .__ class __._ registry.append(self)',這是更明確的 – 2011-06-29 00:41:23