質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

319閲覧

【Python】初期データに前もって生成したUUIDを使ってもいいのか

hijaiel

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2024/06/28 04:27

編集2024/06/28 04:29

実現したいこと

UUIDを識別子として持ったテーブルがあり、そこに初期データを入れて、
初期データの場合だけ別処理をしたいです。

しかし、初期データとして投入したUUIDが毎回変わると、どれが初期データのUUIDなのか分からなくなるので、
前もって生成したUUIDを初期データに使い、そのUUIDで処理の分岐をすることを考えました。
プログラム内では初期データの数だけ、前もって生成したUUIDをハードコードして保持しておきます。

このように、前もって生成したUUIDを使いまわしてもいいのでしょうか?

発生している問題・分からないこと

前もって生成したUUIDを使ってもいいのか

該当のソースコード

Python

1class MyClass(): 2 initial_data_1_uuid = '11111111-2222-3333-4444-555555555555' # 前持った生成したUUID 3 initial_data_2_uuid = '22222222-2222-3333-4444-555555555555' # 前持った生成したUUID 4 5 def my_func(self, data): 6 if data.uuid == self.initial_data_1_uuid: 7 # 何か別処理 8 9 if data.uuid == self.initial_data_2_uuid: 10 # 何か別処理

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

期待した解答が得られなかった。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

IDを単なるIDとして使う(=他のデータとの区別のために使う)のであれば、問題ないと思います。

ただし

前もって生成したUUIDをハードコードして保持しておきます

は悪手だと思います。

初期データだけ何かするということの意味がわかりませんが、特別扱いにするのであれば、

  • 初期データは別で保持しておき、初期化時に処理してDBに投入する
  • 初期データであるかどうかのカラムを設ける

などするのがいいのではないかと思います。

投稿2024/06/28 06:04

TakaiY

総合スコア14309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

駄目な理由が思いつかないので、良いと思いますが、どういう点で「駄目かも」と思っての質問なのですかね。

ただ、文字列の初期値であれば、それを見ただけで初期値と分かるように、空文字列""とか"INIT"等の方が良い気がします。他の部分での処理の都合で、UUIDの形をしてないとまずいのであれば、
"00000000-0000-0000-0000-000000000000"とか(まあ、どういうチェックをしているかによりますが)。

また、それ以前の問題として、「初期値」と言いながら2種類の値(もしかするともっと??)があって、とあるインスタンス変数がどの値だったかによって処理を変えるのであれば、それら複数の値は普通の意味での「初期値」ではないので、数歩後ろに下がってその手前から設計をやり直した方が良いのかもしれません。おそらくコンストラクターで何らかの条件によりどの値をuuidに代入するか決めてそれを代入しているのでしょうけど。
全貌が見えておらず、あくまで見えている範囲だけからのアドバイスなので、このままで良いのかもしれません。

投稿2024/06/29 15:02

otn

総合スコア86295

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問