小编Bre*_*dan的帖子

范围,使用当前模块中的功能

我知道这一定是一个微不足道的问题,但我已经尝试了很多不同的方法,并且搜索了一些解决方案,但是如何在当前模块中创建和引用子功能呢?

例如,我正在编写一个程序来解析文本文件,对于其中的300个不同名称中的每一个,我想分配一个类别.

其中有300个,我有一个这样的结构列表来创建一个字典,所以形式查找[key] =值(奖金问题;任何更有效或明智的方式来做这个比一个大规模的字典?).

我想将所有这些保留在同一个模块中,但是在文件末尾有函数(字典初始化等),所以我不必向下滚动300行来查看代码,即如下所示.以下示例.

当我按下面运行它时,我收到错误'initlookups is not defined'.当我的结构是初始化时,那么函数定义,然后函数使用,没问题.

我确信必须有一种明显的方法来初始化函数和相关的字典而不保持代码内联,但到目前为止已经尝试了很多但没有成功.我可以把它放在外部模块中并导入它,但是为了简单起见,我不想这样做.

在模块结构方面我应该做些什么?有没有比使用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
Run Code Online (Sandbox Code Playgroud)

python scope module structure function

1
推荐指数
1
解决办法
322
查看次数

标签 统计

function ×1

module ×1

python ×1

scope ×1

structure ×1