[Python] 利用uuid模块创建独一无二的ID

Python的uuid模块提供了不可变的UUID对象和用于生成各种版本UUID的函数。UUID即通用唯一标识符,用于生成可在不同系统之间利用的独特ID。

Python中的uuid模块

uuid1()

此函数基于主机的MAC地址和当前时间生成一个UUID。

python
import uuid

# 使用uuid1()生成一个UUID
result = uuid.uuid1()
print(result)
35c8204e-1d15-11ea-a5f1-0800200c9a66

uuid3()

使用uuid3()方法,可以基于命名空间和名称的MD5散列生成一个UUID。

python
namespace = uuid.NAMESPACE_DNS
name = "example.com"

# 使用uuid3()生成一个UUID
result = uuid.uuid3(namespace, name)
print(result)
6fa459ea-ee8a-3ca4-894e-db77e160355e

uuid4()

uuid4()方法可创建一个随机的UUID,如下所示。

python
# 使用uuid4()生成一个UUID
result = uuid.uuid4()
print(result)
f50ec0b7-f960-400d-91f0-c42a6d44e3d7

uuid5()

uuid3()相似,uuid5()方法可基于命名空间和名称的SHA-1散列生成一个UUID。

python
namespace = uuid.NAMESPACE_DNS
name = "example.com"

# 使用uuid5()生成一个UUID
result = uuid.uuid5(namespace, name)
print(result)
c74a196f-f19d-5ea9-bffd-a2742432fc9c

通用唯一标识符对于确保跨系统对象的唯一性至关重要。Python的uuid模块提供了一种简明直观的方式,通过使用像uuid1()uuid3()uuid4()uuid5()等函数来生成不同类型的UUID。


FAQs

  1. uuid3()和uuid5()的主要区别是什么? uuid3()使用MD5散列,而uuid5()使用SHA-1散列。
  2. uuid4()是基于任何系统参数吗? 否,uuid4()生成随机UUID。
  3. uuid1()函数可以在没有主机的MAC地址的情况下使用吗? 是的,如果MAC地址不可用,则会使用随机值。
  4. 使用uuid模块创建的UUID是否有保证是唯一的? 虽然碰撞的可能性非常低,但不是零。
  5. 我如何将UUID转换为字符串? 您可以使用str()函数将UUID对象转换为字符串。
© Copyright 2023 CLONE CODING