如何在模块

时间:2017-12-07 21:41:44

标签: python global-variables

在主程序中我有

import medallia_utils
from collections import defaultdict
Opers   = defaultdict(int)

稍后在这个程序中,我将在medallia_utils中调用一个名为word_checker的函数。

我想在medallia_utils中定义的函数word_checker中操作字典变量Opers,所以我想将它声明为Global。

当我在medallia_utils中执行此操作时:

def word_checker(name, comment):
    import re 
    from collections import defaultdict
    global Opers

系统说

NameError: global name 'Opers' is not defined

我还尝试通过执行

在函数word_checker之外的medallia_utils中全局定义此变量
global Opers

global __Opers__
但到目前为止还没有任何工作。我得到了同样的错误。

使这个有效的语法修复是什么?

2 个答案:

答案 0 :(得分:2)

没有“语法修复”可以使这项工作。如果要使用另一个模块中定义的变量,则需要导入它。

答案 1 :(得分:0)

在将变量声明为全局之后,你需要让变量保持一些东西,例如。

global name 
name = 'bob'