python maintain two different random instance.
<p>I am trying to do some anaylsis and for 'reasons' I want objects in my programm to each have their own seeds but no global seeds. Can I accomplish something like this ? </p>

<pre><code>a = random.seed(seed1) 
b = random.seed(seed2)

for a in range(5) :
    print a.random() b.random()
</code></pre>

<p>The expect output would be </p>

<pre><code>0.23 0.23 
0.45 0.45 
0.56 0.56 
0.34 0.34 
</code></pre>

<p>etc... 
Obviously a super contrived example -- These separate seed will be buried in objects and correspond to specific things. But first step is getting something like this to work.</p>

<p>How can I have python maintain multiple seeded randoms ? </p>

<p>You need to use a <code>random.Random</code> class object.</p>

<pre><code>from random import Random

a = Random()
b = Random()

a.seed(0)
b.seed(0)

for _ in range(5):
    print(a.randrange(10), b.randrange(10))

# Output:
# 6 6
# 6 6
# 0 0
# 4 4
# 8 8
</code></pre>

<p>The <a href="https://docs.python.org/2/library/random.html" rel="nofollow">documentation</a> states explicitly about your problem:</p>

<blockquote>
  <p>The functions supplied by this module are actually bound methods of a
  hidden instance of the <code>random.Random</code> class. You can instantiate your
  own instances of <code>Random</code> to get generators that donât share state.</p>
</blockquote>

python