当前位置:  开发笔记 > 编程语言 > 正文

hash(time.time())总是唯一的

如何解决《hash(time.time())总是唯一的》经验,为你挑选了1个好方法。

我正在尝试为某些单元测试生成唯一的ID ,我看到一个建议在某处使用类似的东西:

def unique_id():
    time.sleep(0.000001) # smallest precision for time.time()
    return time.time()

我想知道hash()调用是否总是至少0.000001,所以我可以使用:

def unique_id():
    return hash(time.time())

如果我在单线程应用程序中连续调用它,那么它是否会返回相同的值两次?

编辑:用'NUMBERS'这个词加粗,因为每个人都忽略了它.



1> Evan Fosmark..:

如果您需要唯一值,建议使用该uuid库.例:

>>> import uuid
>>> uuid.uuid4()
UUID('514c2bd7-75a3-4541-9075-d66560f42b5c')
>>> str(uuid.uuid4())
'6faad714-c2df-448b-b072-f91deb380e84'

如果您需要仅限数字值,请使用该random库.

>>> import random
>>> INT_MAX = sys.maxint #  Set INT_MAX to the max value for your given INT column
>>> random.randint(0, INT_MAX)
5188925271790705047

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有