return self.__missing__(key) # support subclasses that define __missing__
def get(self, key, default=None):
- return self[key] if key in self else default
+ return self[key] if key in self else default # needs to make use of __contains__
def __len__(self):
return len(set().union(*self.maps)) # reuses stored hash values if possible
return iter(d)
def __contains__(self, key):
- return any(key in m for m in self.maps)
+ for mapping in self.maps:
+ if key in mapping:
+ return True
+ return False
def __bool__(self):
return any(self.maps)