066 Python語法之uuid

Python3 uuid

import uuid
 
# uuid1()
>>> print(uuid.uuid1())
2cf0fa7e-48d9-11e6-93fb-c03fd53413ef

# uuid3()
>>> print(uuid.uuid3(uuid.NAMESPACE_DNS, 'test'))
45a113ac-c7f2-30b0-90a5-a399ab912716

# uuid4()
>>> print(uuid.uuid4())
08bffbb6-05e1-41c1-8989-6aa07a4a5e5d

# uuid5()
>>> print(uuid.uuid5(uuid.NAMESPACE_DNS, 'test'))
4be0643f-1d98-573b-97cd-ca98a65347dd

使用經(jīng)驗

  1. Python中沒有基于DCE的,uuid2可以忽略

  2. uuid4基于隨機(jī)數(shù)存在概率性重復(fù),不推薦使用

  3. 對時間精確,并且是分布式計算可用uuid1

  4. 若有名字的唯一性要求,最好使用uuid3或uuid5

命名空間(不同的值)

  1. NAMESPACE_DNS

  2. NAMESPACE_URL

  3. NAMESPACE_OID

  4. NAMESPACE_X500

介紹

  1. uuid1()---基于時間戳和主機(jī)id

  2. 基于分布式計算環(huán)境DCE(python中沒有這個函數(shù))

  3. uuid3()---基于名字和MD5散列值

  4. uuid4()---基于隨機(jī)數(shù)

  5. uuid5()---基于名字的SHA-1散列值

總結(jié)

  1. 如果實在要求唯一,可以經(jīng)過時間戳uuid1得到一個uuid,之后再拼接上當(dāng)前時間戳進(jìn)行一次基于uuid3的計算,這樣的值就近乎于唯一了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容