class Test(object):
def __init__(self, store):
assert isinstance(store, dict)
self.store = store
def __getitem__(self, key):
return self.store[key]
我嘗試過這個類。據說在this doc中實現__getitem__應該足以讓我的測試類。事實上,當我試圖在國際熱核實驗堆,它並沒有告訴我,我不能,但我有一個KeyError異常:python iter over dict-like object
In [10]: a = Test({1:1,2:2})
In [11]: for i in a: print i
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-11-8c9c9a8afa41> in <module>()
----> 1 for i in a: print i
<ipython-input-9-17212ae08f42> in __getitem__(self, key)
4 self.store = store
5 def __getitem__(self, key):
----> 6 return self.store[key]
7
KeyError: 0
- 你知道這個0是從哪裏來的?(這是怎麼回事引擎蓋下)
我知道我可以通過添加一個__iter__函數解決這個問題:
def __iter__(self):
return dict.__iter__(self.store)
- 是不是解決這個問題的最好方法?(我也可能繼承了字典類)。
解決什麼問題的最好方法是什麼類應該做什麼?類只有'dict'的價值? –