在主程序中我有
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__
但到目前为止还没有任何工作。我得到了同样的错误。
使这个有效的语法修复是什么?
答案 0 :(得分:2)
没有“语法修复”可以使这项工作。如果要使用另一个模块中定义的变量,则需要导入它。
答案 1 :(得分:0)
在将变量声明为全局之后,你需要让变量保持一些东西,例如。
global name
name = 'bob'