これは些細な質問であることはわかっていますが、さまざまな方法を試し、解決策を少し探しましたが、現在のモジュールでサブ関数を作成して参照するにはどうすればよいですか?
たとえば、テキスト ファイルを解析するプログラムを作成しており、その中の 300 の異なる名前のそれぞれについて、カテゴリに割り当てたいと考えています。
これらは300あり、辞書を作成するために構造化されたこれらのリストがあるため、形式はlookup [key] = valueです(ボーナス質問;大量の辞書よりも効率的または賢明な方法はありますか?)。
これをすべて同じモジュールに保持したいのですが、ファイルの最後に関数(辞書の初期化など)があるため、コードを表示するために300行下にスクロールする必要はありません。つまり、次のようにレイアウトされています以下の例。
以下のように実行すると、「initlookups が定義されていません」というエラーが表示されます。私が構造化すると、初期化、関数定義、関数使用、問題ありません。
コードをインラインに保持せずに関数と関連する dict を初期化する明白な方法があるに違いないと確信していますが、これまでにかなりの数を試しましたが成功しませんでした。外部モジュールに入れてこれをインポートすることはできますが、簡単にするためにそうしないことをお勧めします。
モジュール構造に関して何をすべきですか?このルックアップ テーブルを格納するために dict を使用するよりも良い方法はありますか (約 10 のカテゴリにマッピングされた 300 の一意のテキスト キーですか?
ありがとう、
ブレンダン
import ..... (initialisation code,etc )
initLookups() # **Should create the dict - How should this be referenced?**
print getlookup(KEY) # **How should this be referenced?**
def initLookups():
global lookup
lookup={}
lookup["A"]="AA"
lookup["B"]="BB"
(etc etc etc....)
def getlookup(value)
if name in lookup.keys():
getlookup=lookup[name]
else:
getlookup=""
return getlookup