• uuid模块


      UUID即通用唯一标识符,对于所有的UUID它可以保证在空间和时间上的唯一性。它是通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性,有着固定的大小(128 bit)。它的唯一性和一致性特点使得可以无需注册过程就能够产生一个新的UUID。UUID可以被用作多种用途,可以用来短时间内标记一个对象,也可以辨别网络中的持久性对象。

      python中uuid模块提供UUID类和函数uuid1()、uuid3()、uuid4()、uuid5()来生成各个版本的UUID。


      1. uuid.uuid1([node[, clock_seq]]):基于时间戳

      使用主机ID,序列号,和当前时间来生成UUID,可保证全球范围的唯一性。但由于使用该方法生成的UUID中包含有主机的网络地址,因此可能危及隐私,不安全。

      该函数有两个参数,如果node参数未指定,系统将会自动调用getnode()函数来获取主机的硬件地址。如果clock_seq参数未指定系统会使用一个随机产生的14位序列号来代替。 

      2. uuid.uuid3(namespace, name):基于名字的MD5散列值

      通过计算命名空间和名字的MD5散列值来生成UUID,可以保证同一命名空间中不同名字的唯一性和不同命名空间的唯一性,但同一命名空间的同一名字生成的UUID相同。

      3. uuid.uuid4():基于随机数

      通过随机数来生成UUID。使用的是伪随机数有一定的重复概率。 

      4. uuid.uuid5(namespace, name):基于名字的SHA-1散列值

      通过计算命名空间和名字的SHA-1散列值来生成UUID,算法与 uuid.uuid3() 相同。

      5. uuid.getnode():以48位正整数形式获取硬件地址

      第一次运行时,它可能会启动一个单独的程序

      6. uuid模块中支持的四种命名空间,这些命名空间也是uuid对象,根据一定的规则计算得出

      uuid.NAMESPACE_DNS:指定此名称空间后,名称字符串是标准域名。

      uuid.NAMESPACE_URL:指定此名称空间后,名称字符串是URL。

     

      uuid.NAMESPACE_OID:指定此名称空间后,名称字符串为ISO OID。

      uuid.NAMESPACE_X500:指定此名称空间后,名称字符串是DER或文本输出格式的X.500 DN。

      7. uuid.UUID(hex=None,bytes=None,bytes_le=None,fields=None,int=None,version=None,*,is_safe=SafeUUID.unknown)

      uuid实例对象的属性:

        UUID.bytes:UUID为16字节的字符串。

        UUID.bytes_le:UUID为16字节的字符串。

        UUID.fields:UUID的六个整数字段的元组,也可以作为六个单独的属性和两个派生的属性使用。

         

        UUID.hex:UUID为32个字符的十六进制字符串。

        UUID.int:UUID为128位整数。

        UUID.version:UUID版本号。

        UUID.is_safe:表示平台是否以多处理安全的方式生成了UUID。


      

    使用

    • Python中没有基于DCE的,所以uuid2可以忽略
    • uuid4存在概率性重复,由无映射性,最好不用
    • 若在Global的分布式计算环境下,最好用uuid1
    • 若有名字的唯一性要求,最好用uuid3或uuid5

     

  • 相关阅读:
    日常工作不常用内容记录:
    python接口自动化(四)——试着实现以下主程序
    python接口自动化(三)——从excel中获取数据
    redis工具类
    Airtest新年“首更”,1.1.7版本抢先看!
    AirtestIDE有哪些好用但是非常隐蔽的小功能?
    年终力荐:网易一站式的自动化测试解决方案
    This和Prototype定义方法的区别
    新版 IDEA 发布,牛逼!网友:内存占用有所好转!
    where 1=1 是什么鬼?
  • 原文地址:https://www.cnblogs.com/eat-w/p/11960833.html
Copyright © 2020-2023  润新知