pythonプロジェクトにはutilities.py
というファイルがあります。ファイルからpythonのutilファイルでグローバル変数を避ける
- 読み取り、
valid.txt
、すべての数字が含まれています。それは、などは、今私が持っている機能
is_valid(number)
、へを持ちたい、たとえばis_float(string)
、is_empty(file)
ため、関数のみUTIL含まれていそれらは有効であり、それらをマップ/セットにロードする。 number
の存在をマップで確認し、TrueまたはFalseを返します。
この関数は頻繁に呼び出され、実行時間はできるだけ小さくする必要があります。私はオープンを読んで、その関数が呼び出されるたびにvalid.txt
と読むのは嫌です。私が思いついた唯一の解決策は、valid.txt
をインポートしたときにグローバル変数valid_dict
を1回ロードすることです。ローディングコードは、utilities.py
にメインとして書かれています。
私の質問は、それが悪い習慣とみなされるので、グローバル変数を使用せずにこれをどうやって行うのですか?グローバルを使用せずにこのようなタスクを実行するための良い設計パターンは何ですか?また、このファイルはutilファイルであることに注意してください。
一つの方法は、あなたがコンセプトに精通しているクロージャを使用することですか? – cdarke
"...グローバル変数を使用する...悪い習慣とみなされます" - 悪い習慣ではありません。ちょうどそれをすること自由に感じる。 –
これは** utilities.py **内のグローバルなものに過ぎません**他のどこにいても "モジュールレベルの変数" –