UUID

信息

UUID 是一个 "通用唯一标识符".

它是一种标准的标识符格式,类似于护照号码,但适用于任何事物,而不仅仅是国家的人。

它们看起来像这样

d48edaa6-871a-4082-a196-4daab372d4a1

它们的生成方式使其足够长且随机,您可以假设生成的每个 UUID 都是唯一的。即使它是通过不同的应用程序、数据库或系统生成的。

因此,如果您的系统使用 UUID 来标识您的数据,您可以将其与其他也使用 UUID 的系统的某些数据混合,并有信心他们的 ID(UUID)不会与您的发生冲突。

如果您只是使用 int 作为标识符,就像大多数数据库一样,情况就不会如此。

您可以将CLI 参数声明为 UUID

from uuid import UUID

import typer


def main(user_id: UUID):
    print(f"USER_ID is {user_id}")
    print(f"UUID version is: {user_id.version}")


if __name__ == "__main__":
    typer.run(main)

您的 Python 代码将接收一个标准的 Python UUID 对象,包含所有属性和方法。由于您使用该类型对函数参数进行了注释,因此您将拥有类型检查、编辑器中的自动完成等功能。

检查它

// Pass a valid UUID v4
$ python main.py d48edaa6-871a-4082-a196-4daab372d4a1

USER_ID is d48edaa6-871a-4082-a196-4daab372d4a1
UUID version is: 4

// An invalid value
$ python main.py 7479706572-72756c6573

Usage: main.py [OPTIONS] USER_ID
Try "main.py --help" for help.

Error: Invalid value for 'USER_ID': 7479706572-72756c6573 is not a valid UUID.