<p>从上一个<a href="https://stackoverflow.com/questions/19580412/hashing-hiding-strings-in-python">question</a>:</p>
<blockquote>
<p>For Python 3.3+, as @gnibbler pointed out, hash() is randomized between runs. It will work for a single run, but almost definitely won't work across runs of your program (pulling from the text file you mentioned).</p>
</blockquote>
<p>所以使用Python2.x时,运行<code>hash('Foo', 'Bar')</code>通常每次在同一台计算机上都会返回相同的结果,这会给您提供相同的初始种子。在python3.3+上,对元组运行<code>hash</code>,每次都会给您一个唯一的值。在</p>
<p>如果您想得到与python3.3+一致的结果,请查看<code>hashlib</code>。例如:</p>
<pre><code>import hashlib
import random
seed1 = ('Foo', 'Bar')
text = u''.join(seed1).encode('utf-8')
sha = hashlib.sha1(text)
random.seed(sha.hexdigest())
print(sha.hexdigest())
print(random.random())
> python3 random2.py
eb8fc41f9d9ae5855c4d801355075e4ccfb22808
0.738130097774164
> python3 random2.py
eb8fc41f9d9ae5855c4d801355075e4ccfb22808
0.738130097774164
> python2 random2.py
eb8fc41f9d9ae5855c4d801355075e4ccfb22808
0.628422839243
> python2 random2.py
eb8fc41f9d9ae5855c4d801355075e4ccfb22808
0.628422839243
</code></pre>
<p>也就是说,你会有一个一致的种子,但是由于随机模块在它们的实现上有所不同,你仍然会得到一个不同的随机数。在</p>