该类的主要功能是一个字典,其中单词为键,id 编号为值(注意:id 不按顺序,因为删除了一些条目):
x = {'foo':0, 'bar':1, 'king':3}
customdict
当我为我创建的类编写迭代器函数时,range(1 to infinity)
由于 KeyError,它在迭代时中断。
class customdict():
def __init__(self,dic):
self.cdict = dic
self.inverse = {}
def keys(self):
# this is necessary when i try to overload the UserDict.Mixin
return self.cdict.values()
def __getitem__(self, valueid):
""" Iterator function of the inversed dictionary """
if self.inverse == {}:
self.inverse = {v:k for k,v in self.cdict.items()}
return self.inverse[valueid]
x = {'foo':0, 'bar':1, 'king':3}
y = customdict(x)
for i in y:
print i
如果没有try and except
并访问len(x)
,我如何解决customdict
类中字典的迭代? 原因是 x 是 >>>,len(x) 对于实时来说将花费太长时间。
我试过UserDict.DictMixin
了,突然就可以了,为什么会这样?:
import UserDict.DictMixin
class customdict(UserDict.DictMixin):
...
有没有办法让我不使用 Mixin,因为在__future__
python3 中,mixin 看起来好像已被弃用?