code: def iter(self, start=0, stop=-1, withscores=False, reverse=None):
          
          reverse = reverse if reverse is not None else self.reversed
          _loads = self._loads
          for member in self._client.zrange(
             self.key_prefix, start=start, end=stop, withscores=withscores,
             desc=reverse, score_cast_func=self.cast):
              if withscores:
                  yield (_loads(member[0]), self.cast(member[1]))
              else:
                  yield _loads(member)
docs: Return a range of values from sorted set name between
              @start and @end sorted in ascending order unless @reverse or
              :prop:reversed.
  
              @start and @end: #int, can be negative, indicating the end of
                  the range.
              @withscores: #bool indicates to return the scores along with the
                  members, as a list of |(member, score)| pairs
              @reverse: #bool indicating whether to sort the results descendingly
  
              -> yields members or |(member, score)| #tuple pairs