Code: Alles auswählen
leonidas@sparc:~/py24$ python2.4 xlbench.py
427.290 xlrange1(10000000000, 10000100000)
387.847 xlrange2(10000000000, 10000100000)
343.588 xlrange3(10000000000, 10000100000)
Ich habe sie jetzt auch so modifiziert, dass man sie zum testen nutzen kann:
Code: Alles auswählen
class xlrange24:
"""xlrange24([start=0,]stop[,step=1]) --> iterator object like xrange for longs"""
def __init__(self, *a):
self.start, self.stop, self.step = tuple(long(x) for x in handleargs(a))
if self.step > 0:
self.is_next = lambda: self.start < self.stop
elif self.step < 0:
self.is_next = lambda: self.start > self.stop
def __iter__(self):
return self
def next(self):
if self.is_next():
i = self.start
self.start += self.step
return i
else:
raise StopIteration

Edit: (ich nochmal): Beim testen unnötigen Code gekickt.