为 python 类的实例分配持久且唯一的 ID

Assigning a persistent and unique ID to instances of a python class

提问人:Nick 提问时间:8/6/2023 更新时间:8/6/2023 访问量:55

问:

SO 上有许多线程处理类似的问题,例如

如何在 Python 类中创建唯一的增量 ID

类实例的自动递增 ID

如何在 Python 类中创建增量 ID

每个线程的解决方案是使用 itertools.count() 为类属性分配一个唯一的 ID。

我对这个解决方案的问题是,这保证了单个解释器会话中的唯一 ID。但是,如果您想持久化/序列化您创建的实例,然后在另一个解释器会话中使用它们呢?itertools.count() 将再次从零开始,因此您可以创建具有相同 ID 的实例。

我唯一想到的就是将自动增量绑定到某个时间戳(例如,以毫秒为单位,或者对于我的应用程序,甚至以秒为单位,因为实例的创建速度会很慢)。它仍然不能保证在不同的环境中是唯一的,但至少在同一个虚拟环境中它应该是唯一的。

这个问题似乎有点夸张,但我欢迎就此发表意见,并就可能的替代方案提出建议

Python 自动递增

评论

3赞 jonrsharpe 8/6/2023
给它一个UUID?
0赞 Michael Butscher 8/6/2023
同时保留上次使用的 ID,并在下一个会话中使用调整后的参数进行调用。itertools.countstart

答: 暂无答案