From 16eb827b33cc271eebd521246ebefd4d49470df8 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sun, 4 Sep 2016 11:17:28 -0700 Subject: [PATCH] Improve docs for random.seed() --- Doc/library/random.rst | 7 +++++-- Lib/random.py | 8 +++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Doc/library/random.rst b/Doc/library/random.rst index df502a0aff0..677090a5ff7 100644 --- a/Doc/library/random.rst +++ b/Doc/library/random.rst @@ -63,8 +63,11 @@ Bookkeeping functions: If *a* is an int, it is used directly. With version 2 (the default), a :class:`str`, :class:`bytes`, or :class:`bytearray` - object gets converted to an :class:`int` and all of its bits are used. With version 1, - the :func:`hash` of *a* is used instead. + object gets converted to an :class:`int` and all of its bits are used. + + With version 1 (provided for reproducing random sequences from older versions + of Python), the algorithm for :class:`str` and :class:`bytes` generates a + narrower range of seeds. .. versionchanged:: 3.2 Moved to the version 2 scheme which uses all of the bits in a string seed. diff --git a/Lib/random.py b/Lib/random.py index 06513c824f8..4efbb0a2b92 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -96,11 +96,13 @@ class Random(_random.Random): None or no argument seeds from current time or from an operating system specific randomness source if available. - For version 2 (the default), all of the bits are used if *a* is a str, - bytes, or bytearray. For version 1, the hash() of *a* is used instead. - If *a* is an int, all bits are used. + For version 2 (the default), all of the bits are used if *a* is a str, + bytes, or bytearray. For version 1 (provided for reproducing random + sequences from older versions of Python), the algorithm for str and + bytes generates a narrower range of seeds. + """ if a is None: