code: def union(self, *others):
          r
          result = self.__copy__()
          _elements = result._elements
          _total = result._total
          for other in map(self._as_mapping, others):
              for element, multiplicity in other.items():
                  old_multiplicity = _elements.get(element, 0)
                  if multiplicity > old_multiplicity:
                      _elements[element] = multiplicity
                      _total += multiplicity - old_multiplicity
          result._total = _total
          return result