code: def invert(self, pos=None):
          
          if pos is None:
              self._invert_all()
              return
          if not isinstance(pos, collections.Iterable):
              pos = (pos,)
          length = self.len
  
          for p in pos:
              if p < 0:
                  p += length
              if not 0 <= p < length:
                  raise IndexError("Bit position {0} out of range.".format(p))
              self._invert(p)
docs: Invert one or many bits from 0 to 1 or vice versa.
  
          pos -- Either a single bit position or an iterable of bit positions.
                 Negative numbers are treated in the same way as slice indices.
  
          Raises IndexError if pos < -self.len or pos >= self.len.