code: def range(self, channels=None):
          
          # Check default
          if channels is None:
              channels = self._channels
  
          # Get numerical indices of channels
          channels = self._name_to_index(channels)
  
          # Get the range of the specified channels
          if hasattr(channels, '__iter__') \
                  and not isinstance(channels, six.string_types):
              return [self._range[ch] for ch in channels]
          else:
              return self._range[channels]
docs: Get the range of the specified channel(s).
  
          The range is a two-element list specifying the smallest and largest
          values that an event in a channel should have. Note that with
          floating point data, some events could have values outside the
          range in either direction due to instrument compensation.
  
          The range should be transformed along with the data when passed
          through a transformation function.
  
          The range of channel "n" is extracted from the $PnR parameter as
          ``[0, $PnR - 1]``.
  
          Parameters
          ----------
          channels : int, str, list of int, list of str
              Channel(s) for which to get the range. If None, return a list
              with the range of all channels, in the order of
              ``FCSData.channels``.
  
          Return
          ------
          array or list of arrays
              The range of the specified channel(s).