On Mon, Mar 21, 2016 at 12:18:01AM +1100, Ben Finney wrote: > boB Stepp <robertvst...@gmail.com> writes: > > > On Sat, Mar 19, 2016 at 8:03 AM, Steven D'Aprano <st...@pearwood.info> > > wrote: > > > On Sat, Mar 19, 2016 at 04:05:58PM +1100, Ben Finney wrote: > > >> if rng is None: > > >> rng = random.random > > > > > > Typo: you want rng = random.randint. > > No, I meant what I wrote. The ‘rng’ parameter is expected to be bound to > a RNG. If the caller has not specified a custom RNG instance, we bind > ‘rng’ to the standard RNG instance found at ‘random.random’.
random.random is not a PRNG instance. It is a bound method: py> import random py> random.random <built-in method random of Random object at 0x869af14> > > >> result = rng.randint(1, num_sides) > > > > > > And here you just want result = rng(1, num_sides). Otherwise you're > > > trying to call random.randint.randint. > > > > And then this statement would be correct as Ben wrote it. > > Unlike some other examples I have posted, I actually bothered to > demonstrate this working as expected before posting it :-) Perhaps you might want to check again? py> rng = random.random py> rng.randint(1, 6) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'builtin_function_or_method' object has no attribute 'randint' -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor