summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/random.py3
-rw-r--r--Lib/test/test_random.py2
-rw-r--r--Misc/NEWS4
3 files changed, 8 insertions, 1 deletions
diff --git a/Lib/random.py b/Lib/random.py
index 76dc416..7932ac7 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -94,6 +94,9 @@ class Random(_random.Random):
If a is not None or an int or long, hash(a) is used instead.
"""
+ if a is None:
+ import time
+ a = long(time.time() * 256) # use fractional seconds
super(Random, self).seed(a)
self.gauss_next = None
diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index ea2243d..c9103e8 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -20,7 +20,7 @@ class TestBasicOps(unittest.TestCase):
def test_autoseed(self):
self.gen.seed()
state1 = self.gen.getstate()
- time.sleep(1.1)
+ time.sleep(0.1)
self.gen.seed() # diffent seeds at different times
state2 = self.gen.getstate()
self.assertNotEqual(state1, state2)
diff --git a/Misc/NEWS b/Misc/NEWS
index 1de08e7..93c7fb8 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -25,6 +25,10 @@ Extension modules
Library
-------
+- random.seed() with no arguments or None uses time.time() as a default
+ seed. Modified to match Py2.2 behavior and use fractional seconds so
+ that successive runs are more likely to produce different sequences.
+
- itertools.izip() with no arguments now returns an empty iterator instead
of raising a TypeError exception.