提交 5b5f672d authored 作者: Frederic's avatar Frederic

Fix _metadict to allow removing un hashable value.

_metadict is a dict that work with not hashable type. This is needed for the SliceType.
上级 dc32d57a
...@@ -380,23 +380,29 @@ class _metadict: ...@@ -380,23 +380,29 @@ class _metadict:
self.l.append((item, value)) self.l.append((item, value))
def __delitem__(self, item): def __delitem__(self, item):
if item in self.d: try:
del self.d[item] if item in self.d:
else: del self.d[item]
for i, (key, val) in enumerate(self.l): return
if key == item: except TypeError, e:
del self.l[i] assert "unhashable type" in str(e)
return for i, (key, val) in enumerate(self.l):
if key == item:
del self.l[i]
return
raise KeyError(item) raise KeyError(item)
def discard(self, item): def discard(self, item):
if item in self.d: try:
del self.d[item] if item in self.d:
else: del self.d[item]
for i, (key, val) in enumerate(self.l): return
if key == item: except TypeError, e:
del self.l[i] assert "unhashable type" in str(e)
return for i, (key, val) in enumerate(self.l):
if key == item:
del self.l[i]
return
def get(self, item, default): def get(self, item, default):
try: try:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论