Før du går videre og beskriver hvordan vi kan bruke Python til å skape en universelt unik identifikator (UUID), kan man spørre, hva er UUID uansett? Så, la oss starte med å definere hva vi mener med en UUID og hvorfor vi bruker den.
UUID er i utgangspunktet et 16-byte-nummer (128 bit) som brukes til unikt identifiser et objekt (data). Dette tallet består av 32 heksadesimale siffer som vises i fem grupper, og er adskilt av bindestreker. For å se hva en UUID kan se ut, er dette et eksempel:
022db29c-d0e2-11e5-bb4c-60f81dca7676
Målet med å bruke en slik identifikator er å garantere at vi ikke har lignende identifikatorer, eller i det minste garantere at en identifikator skal være forskjellig fra alle UUID'er generert til 3400 A.D.!
Slik unikhet oppnås ved å kombinere forskjellige komponenter sammen som vil garantere at UUID-er er forskjellige. Identifikatoren i dette tilfellet vil bestå av maskinens nettverksadresse, en tidsstempel og en tilfeldig generert komponent.
Dermed kan vi si at en UUID anses som en algoritme som brukes til å lage en unik streng av bestemt format som består av forskjellige komponenter som sikrer identiteten til identifikatoren.
La oss nå komme til den morsomme delen, hvordan du lager en UUID i python. For å gjøre det, må vi bruke Python's uuid-modul. Du trenger ikke installere noe på dette tidspunktet, da denne modulen kommer med Python-distribusjonen din. Alt du trenger å gjøre for å bruke modulen, er å importere det direkte fra skriptet. Før det, la meg vise deg hvordan Pythons dokumentasjon beskriver denne modulen:
Denne modulen gir uendeligUUID
objekter (theUUID
klassen) og funksjoneneuuid1 ()
,uuid3 ()
,uuid4 ()
,uuid5 ()
for å generere versjon 1, 3, 4 og 5 UUID som spesifisert i RFC 4122.
Vel, gjett hva? Som vi lærte i glatt forfriskerserie, Python forsøker å gjøre ting enkelt, og å skape en UUID er ikke annerledes. Værsågod!
importere uuid-utskrift uuid.uuid4 ()
Ja det er det! Dette er alt du trenger for å generere en UUID i Python. På min maskin fikk jeg følgende utgang:
b77eafed-69ab-422D-8448-1ec1f0a2eb8c
Hvor mange heksadesimale siffer kan du se?
Tror du ikke Python prøver å gjøre livet enklere?!