code: def pop(self, key, *args):
          
          if len(args) > 1:
              raise TypeError("pop expected at most 2 arguments, got %d" % (1 + len(args)))
          try:
              value = self.get_value(key)
              self.remove(key)
              return value
          except KeyError:
              if len(args) == 0:
                  raise
              else:
                  return args[0]
docs: T.pop(k[,d]) -> v, remove specified key and return the corresponding value.
          If key is not found, d is returned if given, otherwise KeyError is raised