mirror of
https://github.com/python/cpython.git
synced 2025-07-12 13:55:34 +00:00
Document which part of the random module module are guaranteed.
This commit is contained in:
parent
435cb0f233
commit
f763a728ad
4 changed files with 44 additions and 12 deletions
|
@ -91,13 +91,17 @@ class Random(_random.Random):
|
|||
self.seed(x)
|
||||
self.gauss_next = None
|
||||
|
||||
def seed(self, a=None):
|
||||
def seed(self, a=None, version=2):
|
||||
"""Initialize internal state from hashable object.
|
||||
|
||||
None or no argument seeds from current time or from an operating
|
||||
system specific randomness source if available.
|
||||
|
||||
If a is not None or an int, hash(a) is used instead.
|
||||
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.
|
||||
|
||||
"""
|
||||
|
||||
if a is None:
|
||||
|
@ -107,6 +111,11 @@ class Random(_random.Random):
|
|||
import time
|
||||
a = int(time.time() * 256) # use fractional seconds
|
||||
|
||||
if version == 2 and isinstance(a, (str, bytes, bytearray)):
|
||||
if isinstance(a, str):
|
||||
a = a.encode("utf8")
|
||||
a = int(_hexlify(a), 16)
|
||||
|
||||
super().seed(a)
|
||||
self.gauss_next = None
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue