code: def _explode_shorthand_ip_string(self):
          
          if isinstance(self, _BaseNet):
              ip_str = str(self.ip)
          else:
              ip_str = str(self)
  
          ip_int = self._ip_int_from_string(ip_str)
          parts = []
          for i in xrange(self._HEXTET_COUNT):
              parts.append('%04x' % (ip_int & 0xFFFF))
              ip_int >>= 16
          parts.reverse()
          if isinstance(self, _BaseNet):
              return '%s/%d' % (':'.join(parts), self.prefixlen)
          return ':'.join(parts)
docs: Expand a shortened IPv6 address.
  
          Args:
              ip_str: A string, the IPv6 address.
  
          Returns:
              A string, the expanded IPv6 address.