PythonでUUIDを使用し異なる種類のUUIDを作成してみます。
今回はuuidを用います。このライブラリ・モジュールはPythonの標準ライブラリですので、事前にインストールする必要はありません。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows11)
■UUIDを使用し異なる種類のUUIDを作成する
では、早速UUIDを使用し異なる種類のUUIDを作成するスクリプトを書いていきます。
■コード
import uuid def generate_uuid(): # バージョン 4 のランダムなUUIDを生成する random_uuid = uuid.uuid4() print("Random UUID (Version 4):", random_uuid) # バージョン 1 のタイムベースのUUIDを生成する time_based_uuid = uuid.uuid1() print("Time-based UUID (Version 1):", time_based_uuid) # 名前ベースのUUIDを生成する namespace_uuid = uuid.uuid5(uuid.NAMESPACE_DNS, 'kazuuu.net') print("Namespace-based UUID (Version 5):", namespace_uuid) if __name__ == "__main__": generate_uuid()
まずはuuidモジュールをインポートします。このuuidモジュールを使用し異なる種類のUUIDを生成するgenerate_uuid関数を定義します。
定義後、uuid.uuid4()関数を用います。これはバージョン4のランダムなUUIDを生成します。ランダムな128ビットのUUIDを生成します。生成されるUUIDは、完全にランダムな要素に基づいており、通常の乱数ジェネレーターを使用して生成されます。生成されたUUIDは重複する可能性が非常に低く、一意であることが保証されます。
次にuuid.uuid1()関数を用います。これはバージョン 1 のタイムベースのUUID、MACアドレスと現在の時刻を基にしたUUIDを生成します。このUUIDは、ネットワーク上の一意のノードを識別するためのタイムスタンプを含んでいます。したがって、同じノードから生成されたUUIDは、時刻の順序でソートされます。
次にuuid.uuid5(namespace, name)を用います。これは名前ベースのUUIDを生成します。uuid.uuid5()関数は、指定された名前と名前空間に基づいてUUIDを生成します。名前空間はuuid.NAMESPACE_DNSやuuid.NAMESPACE_URLなどの定義済みの名前空間を使用するか、独自の名前空間を作成することもできます。今回はDNS名前空間とkazuuu.netという名前を使用してUUIDを生成しています。
generate_uuid関数は上記の3つのUUIDを生成しそれぞれのUUIDを表示します。
最後に「if __name__ == “__main__”」と記述します。この条件文は、このスクリプトが直接実行された場合にのみgenerate_uuid関数を呼び出すためのものです。これにより、他のスクリプトからこのモジュールがインポートされた場合にはgenerate_uuid関数が実行されなくなります。
■検証・実行
今回書いたスクリプトを「u_id_test.py」という名前でPythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、異なる種類のUUIDが生成され、それぞれのUUIDが表示されることを確認できました。
コメント