条件のリストとそれらの条件に対して引数をチェックするいくつかの関数を定義する interface.py というモジュールを使用しようとしています。ただし、何千もの条件があるため、リストの代わりに辞書を使用して、それらすべてを調べる必要がないようにしたいと考えています。これを行うには、次のコードを使用しています。
def listToDictionary(list):
"""This function takes a list of conditions and converts it to a dictionary
that uses the name of the condition as a key."""
d = {}
for condition in list:
if condition.name.lower() not in d:
d[condition.name.lower()] = []
d[condition.name.lower()].append(condition)
return d
conditionList = listToDictionary(conditions.list) #the condition list comes from another module
ファイルのさらに奥には、条件のリストと比較するための引数を取る実際のインターフェイス関数があります。これらの関数は、conditionList がディクショナリであると想定して記述されています。
残念ながら、これは機能していません。このコードはdjangoページによってインポートされているため、エラーの詳細を提供することは困難であり、djangoについて話すことを避けようとしているため、この質問は複雑ではありません. 基本的に、このコードを含むページは読み込まれません。リストを使用するだけに戻すと、すべて正常に動作します。
私の疑いでは、問題は Python が import ステートメントを処理する方法に関係しているということです。interface.py がインポートされたらすぐに listToDictionary 変換を実行する必要があります。そうしないと、インターフェイス関数は辞書を期待し、代わりにリストを取得します。これが起こっていることを確認する方法はありますか?