Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:random.seed不同,但randint生成相同的数字_Python_Python 3.x_Python 2.7 - Fatal编程技术网

Python:random.seed不同,但randint生成相同的数字

Python:random.seed不同,但randint生成相同的数字,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我面临着一个非常独特的问题 random.seed(123) rg = PhoneMetadata.metadata_for_region(random.choice(('US', 'FR', 'IN', 'GB'))) pl = rg.mobile.possible_length cc = rg.country_code print(''.join(str(random.randint(0, 9)) for _ in range(pl[0]))) --3982597919 random.

我面临着一个非常独特的问题

random.seed(123)

rg = PhoneMetadata.metadata_for_region(random.choice(('US', 'FR', 'IN', 'GB')))
pl = rg.mobile.possible_length
cc = rg.country_code

print(''.join(str(random.randint(0, 9)) for _ in range(pl[0])))
--3982597919

random.seed(345)

rg = PhoneMetadata.metadata_for_region(random.choice(('US', 'FR', 'IN', 'GB')))
pl = rg.mobile.possible_length
cc = rg.country_code

print(''.join(str(random.randint(0, 9)) for _ in range(pl[0])))
--3982597919
我给了不同的种子编号,但输出给了我相同的编号。这不是每次都会发生,但我会随机面对这个问题。

任何帮助都将不胜感激

任何帮助都将不胜感激

由于您已经排除了
PhoneMetadata
,调试的一个帮助可能是保存每次调用的随机状态,并在出现问题时检查它。要保存:

pickle.dump(random.getstate(), open(tempfile.mktemp(), "w"))
要恢复,请查看临时目录,按日期排序,然后通过(例如)恢复最新的

random.setstate(pickle.load(open("/tmp/tmpQMWOE4")))

然后看看是否可以使用此状态重现行为。

如何处理
random.getstate()
?是不是
PhoneMetatdata
设置了种子?不是,这里不是这样。无法在Python 2.7上复制(假设
PhoneMetadata
实际上不相关)。你看到这个的确切版本是什么?