我正在尝试使用一个名为 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 转换,否则接口函数将需要一个字典并获得一个列表。有什么方法可以确保这种情况发生吗?