STINNER Victor <vstin...@python.org> added the comment:
Antoine: > However, if we want to think about a new subclassing API, it may be worth > looking at the recent Numpy changes. Numpy added a new random generator API > recently, with a design based on composition rather than inheritance (and > also they switched from Mersenne Twister to another underlying PRNG!): > https://numpy.org/doc/stable/reference/random/index.html Yeah, sometimes composition is simpler. My BaseRandom base class (PR 19631) can be used with composition indirectly, since all you need is to implemented getrandbits(). Example: --- from numpy.random import default_rng import random class NumpyRandom(random.BaseRandom): def __init__(self): self._rng = default_rng() def getrandbits(self, n): # FIXME: support n larger than 64 ;-) return int(self._rng.integers(2 ** n)) gen = NumpyRandom() print(gen.randint(1, 6)) print(gen.random()) print(gen.randbytes(3)) --- ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue40346> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com