Python在从字典继承的类中添加反向映射字典属性

时间:2016-12-30 02:23:17

标签: python dictionary

我是Python的新手,并试图创建一个从字典继承的类,同时具有属性名称reversemap。 reversemap属性是另一个字典,它包含主字典中值的键。示例如下: -

v_end

当我尝试将一个指定给hh ['1']时,它会抛出错误说明 self.reversemap [item] = key AttributeError:'DictWithReverseMap'对象没有属性'reversemap'

任何想法?感谢。

1 个答案:

答案 0 :(得分:1)

您没有使用超类(dict)中的函数。这是你应该如何实现它

class DictWithReverseMap(dict):
  def __init__(self):
    super(DictWithReverseMap, self).__init__()
    self.reversemap = dict()
  def __setitem__(self, key, item):
    super(DictWithReverseMap, self).__setitem__(key, item)
    self.reversemap[item] = key

hh= DictWithReverseMap()
hh['1'] = "a"
hh['2'] = "a"
hh['3'] = "b"

print hh.keys()
print hh['1']  # Remember to use quote around the number 1
print hh.reversemap['b']    # Remember to use quote around the letter b