summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2013-10-06 04:34:48 (GMT)
committerRaymond Hettinger <python@rcn.com>2013-10-06 04:34:48 (GMT)
commit8dc1692337c4551a6ccf27091478f67027b573c4 (patch)
tree0e1b3095165481291be6bc5cb0b1c83986cf6727
parent61e9ffa191aa3a3270c5efcd3f1d05810419b63f (diff)
downloadcpython-8dc1692337c4551a6ccf27091478f67027b573c4.zip
cpython-8dc1692337c4551a6ccf27091478f67027b573c4.tar.gz
cpython-8dc1692337c4551a6ccf27091478f67027b573c4.tar.bz2
Issue 14927: Minor clean-up of function parameters in random().
-rw-r--r--Lib/random.py39
1 files changed, 19 insertions, 20 deletions
diff --git a/Lib/random.py b/Lib/random.py
index 6fa1c05..1a3a13e 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -170,29 +170,28 @@ class Random(_random.Random):
## -------------------- integer methods -------------------
- def randrange(self, start, stop=None, step=1, int=int, default=None,
- maxwidth=1L<<BPF):
+ def randrange(self, start, stop=None, step=1, _int=int, _maxwidth=1L<<BPF):
"""Choose a random item from range(start, stop[, step]).
This fixes the problem with randint() which includes the
endpoint; in Python this is usually not what you want.
- Do not supply the 'int', 'default', and 'maxwidth' arguments.
+
"""
# This code is a bit messy to make it fast for the
# common case while still doing adequate error checking.
- istart = int(start)
+ istart = _int(start)
if istart != start:
raise ValueError, "non-integer arg 1 for randrange()"
- if stop is default:
+ if stop is None:
if istart > 0:
- if istart >= maxwidth:
+ if istart >= _maxwidth:
return self._randbelow(istart)
- return int(self.random() * istart)
+ return _int(self.random() * istart)
raise ValueError, "empty range for randrange()"
# stop argument supplied.
- istop = int(stop)
+ istop = _int(stop)
if istop != stop:
raise ValueError, "non-integer stop for randrange()"
width = istop - istart
@@ -210,14 +209,14 @@ class Random(_random.Random):
# a long, but we're supposed to return an int (for backward
# compatibility).
- if width >= maxwidth:
- return int(istart + self._randbelow(width))
- return int(istart + int(self.random()*width))
+ if width >= _maxwidth:
+ return _int(istart + self._randbelow(width))
+ return _int(istart + _int(self.random()*width))
if step == 1:
raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width)
# Non-unit step argument supplied.
- istep = int(step)
+ istep = _int(step)
if istep != step:
raise ValueError, "non-integer step for randrange()"
if istep > 0:
@@ -230,9 +229,9 @@ class Random(_random.Random):
if n <= 0:
raise ValueError, "empty range for randrange()"
- if n >= maxwidth:
+ if n >= _maxwidth:
return istart + istep*self._randbelow(n)
- return istart + istep*int(self.random() * n)
+ return istart + istep*_int(self.random() * n)
def randint(self, a, b):
"""Return random integer in range [a, b], including both end points.
@@ -240,7 +239,7 @@ class Random(_random.Random):
return self.randrange(a, b+1)
- def _randbelow(self, n, _log=_log, int=int, _maxwidth=1L<<BPF,
+ def _randbelow(self, n, _log=_log, _int=int, _maxwidth=1L<<BPF,
_Method=_MethodType, _BuiltinMethod=_BuiltinMethodType):
"""Return a random int in the range [0,n)
@@ -257,7 +256,7 @@ class Random(_random.Random):
# has not been overridden or if a new getrandbits() was supplied.
# This assures that the two methods correspond.
if type(self.random) is _BuiltinMethod or type(getrandbits) is _Method:
- k = int(1.00001 + _log(n-1, 2.0)) # 2**k > n-1 > 2**(k-2)
+ k = _int(1.00001 + _log(n-1, 2.0)) # 2**k > n-1 > 2**(k-2)
r = getrandbits(k)
while r >= n:
r = getrandbits(k)
@@ -265,7 +264,7 @@ class Random(_random.Random):
if n >= _maxwidth:
_warn("Underlying random() generator does not supply \n"
"enough bits to choose from a population range this large")
- return int(self.random() * n)
+ return _int(self.random() * n)
## -------------------- sequence methods -------------------
@@ -273,20 +272,20 @@ class Random(_random.Random):
"""Choose a random element from a non-empty sequence."""
return seq[int(self.random() * len(seq))] # raises IndexError if seq is empty
- def shuffle(self, x, random=None, int=int):
+ def shuffle(self, x, random=None):
"""x, random=random.random -> shuffle list x in place; return None.
Optional arg random is a 0-argument function returning a random
float in [0.0, 1.0); by default, the standard random.random.
- Do not supply the 'int' argument.
"""
if random is None:
random = self.random
+ _int = int
for i in reversed(xrange(1, len(x))):
# pick an element in x[:i+1] with which to exchange x[i]
- j = int(random() * (i+1))
+ j = _int(random() * (i+1))
x[i], x[j] = x[j], x[i]
def sample(self, population, k):