def _explore(self, explore_iterable):
if self.v_locked:<EOL><INDENT>raise pex.ParameterLockedException('<STR_LIT>' % self.v_full_name)<EOL><DEDENT>if self.f_has_range():<EOL><INDENT>raise TypeError('<STR_LIT>'<EOL>'<STR_LIT>' % self._name)<EOL><DEDENT>if self._data is None:<EOL><INDENT>raise TypeError('<STR_LIT>'<EOL>'<STR_LIT>' % self.v_full_name)<EOL><DEDENT>data_list = self._data_sanity_checks(explore_iterable)<EOL>self._explored_range = data_list<EOL>self._explored = True<EOL>self.f_lock()<EOL>
Explores the parameter according to the iterable.

        Raises ParameterLockedException if the parameter is locked.
        Raises TypeError if the parameter does not support the data,
        the types of the data in the iterable are not the same as the type of the default value,
        or the parameter has already an exploration range.

        Note that the parameter will iterate over the whole iterable once and store
        the individual data values into a tuple. Thus, the whole exploration range is
        explicitly stored in memory.

        :param explore_iterable: An iterable specifying the exploration range

        For example:

        >>> param._explore([3.0,2.0,1.0])
        >>> param.f_get_range()
        (3.0, 2.0, 1.0)

        :raises TypeError,ParameterLockedException