randrange(): 2.3 can no longer raises OverflowError on an int() call, so

some of this code because useless, and (worse) could return a long
instead of int (in Zope that's important, because a long can't be used
as a key in an IOBTree or IIBTree).
This commit is contained in:
Tim Peters 2003-06-19 03:23:06 +00:00
parent 0b1b5adaee
commit afb8979771
1 changed files with 1 additions and 10 deletions

View File

@ -148,16 +148,7 @@ class Random(_random.Random):
if istop != stop: if istop != stop:
raise ValueError, "non-integer stop for randrange()" raise ValueError, "non-integer stop for randrange()"
if step == 1 and istart < istop: if step == 1 and istart < istop:
try: return int(istart + self.random()*(istop - istart))
return istart + int(self.random()*(istop - istart))
except OverflowError:
# This can happen if istop-istart > sys.maxint + 1, and
# multiplying by random() doesn't reduce it to something
# <= sys.maxint. We know that the overall result fits
# in an int, and can still do it correctly via math.floor().
# But that adds another function call, so for speed we
# avoided that whenever possible.
return int(istart + _floor(self.random()*(istop - istart)))
if step == 1: if step == 1:
raise ValueError, "empty range for randrange()" raise ValueError, "empty range for randrange()"