我知道这一定是一个微不足道的问题,但是我尝试了许多不同的方法,并且稍微搜索了一下解决方案,但是如何在当前模块中创建和引用子函数?
例如,我正在编写一个程序来解析一个文本文件,我想为其中的 300 个不同名称中的每一个分配一个类别。
其中有 300 个,我有一个列表来创建一个 dict,所以形式为 lookup[key]=value (奖金问题;有比大量 dict 更有效或更明智的方法吗?)。
我想将所有这些保留在同一个模块中,但在文件末尾使用函数(dict初始化等),所以我不必向下滚动 300 行来查看代码,即布局如下面的例子。
当我按如下方式运行它时,我收到错误“未定义 initlookups”。当我的结构是初始化时,然后是函数定义,然后是函数使用,没问题。
我确信必须有一种明显的方法来初始化函数和相关的 dict 而不保持代码内联,但是到目前为止已经尝试了很多都没有成功。我可以把它放在一个外部模块中并导入它,但为了简单起见,我不想这样做。
在模块结构方面我应该做什么?有没有比使用 dict 存储这个查找表更好的方法(它是 300 个唯一的文本键映射到大约 10 个类别?
谢谢,
布伦丹
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