'Protect keys, items, and values.'

def __setattr__(self, name, value):

    if (not ('_att_dict' in self.__dict__)):
        object.__setattr__(self, name, value)
    else:
        try:
            fun = self._att_dict[name]
        except KeyError:
            OrderedDict.__setattr__(self, name, value)
        else:
            fun(value)
