code: def _hash(self):
          
          MAX = sys.maxint
          MASK = 2 * MAX + 1
          n = len(self)
          h = 1927868237 * (n + 1)
          h &= MASK
          for x in self:
              hx = hash(x)
              h ^= (hx ^ (hx << 16) ^ 89869747)  * 3644798167
              h &= MASK
          h = h * 69069 + 907133923
          h &= MASK
          if h > MAX:
              h -= MASK + 1
          if h == -1:
              h = 590923713
          return h
docs: Compute the hash value of a set.
  
          Note that we don't define __hash__: not all sets are hashable.
          But if you define a hashable set type, its __hash__ should
          call this function.
  
          This must be compatible __eq__.
  
          All sets ought to compare equal if they contain the same
          elements, regardless of how they are implemented, and
          regardless of the order of the elements; so there's not much
          freedom for __eq__ or __hash__.  We match the algorithm used
          by the built-in frozenset type.