日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

Python 标准库之 uuid

發(fā)布時(shí)間:2023/11/28 生活经验 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 标准库之 uuid 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. uuid 介紹

UUID: 通用唯一標(biāo)識(shí)符 ( Universally Unique Identifier ),對(duì)于所有的 UUID 它可以保證在空間和時(shí)間上的唯一性。它是通過(guò) MAC 地址、時(shí)間戳、命名空間、隨機(jī)數(shù)、偽隨機(jī)數(shù)來(lái)保證生成 ID 的唯一性,有著固定的大小 (128 bit )。它的唯一性和一致性特點(diǎn)使得可以無(wú)需注冊(cè)過(guò)程就能夠產(chǎn)生一個(gè)新的 UUID。

UUID 可以被用作多種用途,既可以用來(lái)短時(shí)間內(nèi)標(biāo)記一個(gè)對(duì)象,也可以可靠的辨別網(wǎng)絡(luò)中的持久性對(duì)象。

2. uuid中各個(gè)方法介紹

Python 的 uuid 模塊提供 UUID 和函數(shù) uuid1()、uuid3()、uuid4()、uuid5() 來(lái)生成 1、3、4、5 各個(gè)版本的 UUID ( 需要注意的是:Python中沒(méi)有 uuid2() 這個(gè)函數(shù))。

對(duì)uuid模塊中最常用的幾個(gè)函數(shù)總結(jié)如下:

  • uuid.uuid1([node[, clock_seq]]):基于時(shí)間戳

使用主機(jī)ID, 序列號(hào), 和當(dāng)前時(shí)間來(lái)生成UUID,可保證全球范圍的唯一性。但由于使用該方法生成的UUID中包含有主機(jī)的網(wǎng)絡(luò)地址,因此可能危及隱私。該函數(shù)有兩個(gè)參數(shù),如果 node 參數(shù)未指定,系統(tǒng)將會(huì)自動(dòng)調(diào)用 getnode() 函數(shù)來(lái)獲取主機(jī)的硬件地址。如果 clock_seq 參數(shù)未指定系統(tǒng)會(huì)使用一個(gè)隨機(jī)產(chǎn)生的14位序列號(hào)來(lái)代替。

注意 uuid1() 返回的不是普通的字符串,而是一個(gè) uuid 對(duì)象,其內(nèi)含有豐富的成員函數(shù)和變量。

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

通過(guò)計(jì)算命名空間和名字的MD5散列值來(lái)生成UUID,可以保證同一命名空間中不同名字的唯一性和不同命名空間的唯一性,但同一命名空間的同一名字生成的UUID相同。

  • uuid.uuid4():基于隨機(jī)數(shù)

    通過(guò)隨機(jī)數(shù)來(lái)生成UUID,使用的是偽隨機(jī)數(shù)有一定的重復(fù)概率。

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

    通過(guò)計(jì)算命名空間和名字的SHA-1散列值來(lái)生成UUID,算法與 uuid.uuid3() 相同。

3. uuid模塊的使用

使用規(guī)則:

首先,Python中沒(méi)有基于 DCE 的,所以u(píng)uid2可以忽略;
其次,uuid4存在概率性重復(fù),由無(wú)映射性,最好不用;
再次,若在Global的分布式計(jì)算環(huán)境下,最好用uuid1;
最后,若有名字的唯一性要求,最好用uuid3或uuid5;


import uuiduuid.uuid1()
Out[2]: UUID('d4428ad1-4aef-11e8-bbd1-346895487cb6')uuid.uuid3(uuid.NAMESPACE_DNS, 'test')
Out[3]: UUID('45a113ac-c7f2-30b0-90a5-a399ab912716')uuid.uuid4()
Out[4]: UUID('b8f688a8-13c1-4f50-8c66-a305c0fc6215')uuid.uuid5(uuid.NAMESPACE_DNS, 'test')
Out[5]: UUID('4be0643f-1d98-573b-97cd-ca98a65347dd')

總結(jié)

以上是生活随笔為你收集整理的Python 标准库之 uuid的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。