PythonでUUIDを使用し異なる種類のUUIDを作成する

スポンサーリンク

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が表示されることを確認できました。

コメント

タイトルとURLをコピーしました