您至少有两种方法可以创建唯一标识符:
- 使用增量值(通常是整数)来生成唯一键
- 使用例如。UUID(通用唯一标识符)
增量标识符
第一个选择很明显:无论是在数据库层还是在应用程序层,都需要存储最后生成的标识符的信息,这样就可以通过递增来生成另一个标识符。
示例解决方案在这里:
>>> class Incremental(object):
_last_id = 0
def __init__(self):
Incremental._last_id += 1
self.id = Incremental._last_id
>>> class MyClass(Incremental):
def __repr__(self):
return 'MyClass with id=%s' % self.id
>>> a = MyClass()
>>> b = MyClass()
>>> c = MyClass()
>>> a, b, c
(MyClass with id=1, MyClass with id=2, MyClass with id=3)
虽然看看其他人提出的建议 - 他们的建议可能更适合增量 ID。
通用唯一标识符
第二种选择只是使用适当的工具来完成适当的任务:UUID 专门设计用于为您提供唯一标识符。
有一个名为UUID的模块与标准 Python 安装捆绑在一起,您可以使用它:
>>> import uuid
>>> str(uuid.uuid1())
'0baa65ea-b665-11e1-b721-b80305056d6a'
将它们翻译成哈希
如果您愿意,可以将这两个值转换为 SHA-1 哈希:
>>> import hashlib
>>> hashlib.sha1(str(1)).hexdigest()
'356a192b7913b04c54574d18c28d46e6395428ab'
>>> hashlib.sha1('0baa65ea-b665-11e1-b721-b80305056d6a').hexdigest()
'46bd64c5f4a81b90539d7302d030e01378ef6d6e'