> > def __init__(self, seq, *stop): > > > > Wouldn't it be better if it has the same signature(s) as itertools.islice?
That's actually what I was going for, except I was modeling it after range, but that was the only way I knew to implement it. > > if len(stop) > 3: > > > raise TypeError("xslice takes at most 4 arguments") > > > elif len(stop) < 0: > > > > How would len(stop) be negative? Yes, that should've been len(stop) < 1. > Or you can use itertools.imap: > > > > def xslice(sequence, start_or_stop, *args): > > indices = xrange(*slice(start_or_stop, *args).indices(len(sequence))) > > return imap(sequence.__getitem__, indices) > > > > > > Oscar I like the way you did that with imap, although I still like my parameter implementation. To confess, this is the second time I've made the mistake of trying to implement generator like functionality of a builtin when there already is on in itertools. Need to start studying that module abit more I think. I'm looking at the docs now and I see there are actually a couple of isomethings(). -- http://mail.python.org/mailman/listinfo/python-list