uuid4() 函数位于Python的uuid模块中,可生成随机UUID,并且每次生成的UUID似乎都不同:
In [1]: import uuid
In [2]: uuid.uuid4()
Out[2]: UUID('f6c9ad6c-eea0-4049-a7c5-56253bc3e9c0')
In [3]: uuid.uuid4()
Out[3]: UUID('2fc1b6f9-9052-4564-9be0-777e790af58f')
我希望能在每次运行脚本时生成相同的随机UUID,也就是说,我希望在uuid4()
中种子化随机生成器。有没有办法做到这一点?(或通过其他方式实现此目的)?
到目前为止我尝试了什么
我使用带有随机128位整数(来自于种子实例random.Random()
)作为输入使用uuid.UUID()
方法生成UUID:
import uuid
import random
rd = random.Random()
rd.seed(0)
uuid.UUID(rd.getrandbits(128))
然而,UUID()
似乎不接受此输入:
Traceback (most recent call last):
File "uuid_gen_seed.py", line 6, in <module>
uuid.UUID(rd.getrandbits(128))
File "/usr/lib/python2.7/uuid.py", line 133, in __init__
hex = hex.replace('urn:', '').replace('uuid:', '')
AttributeError: 'long' object has no attribute 'replace'
还有其他的建议吗?
hex
暗示你可以通过调用hey(rd.getrandbits(128))
来获得它。然而,你最终不会得到一个 uuid4。 - L3viathan