code: def difference(self, *others):
          r
          result = self.__copy__()
          _elements = result._elements
          _total = result._total
          for other in map(self._as_multiset, others):
              for element, multiplicity in other.items():
                  if element in _elements:
                      old_multiplicity = _elements[element]
                      new_multiplicity = old_multiplicity - multiplicity
                      if new_multiplicity > 0:
                          _elements[element] = new_multiplicity
                          _total -= multiplicity
                      else:
                          del _elements[element]
                          _total -= old_multiplicity
          result._total = _total
          return result