0

我的脚本开头有以下几行:

global lotRow
global lotCol

然后,稍后,我使用函数将 lotRow 和 lotCol 设置为字符串。然后,甚至稍后,我执行以下操作:

getIDFromAxes(int(lotRow), int(lotCol))

这给了我:

    getIDFromAxes(str(lotRow), str(lotCol))
NameError: global name 'lotRow' is not defined

我让 def() 在最后打印“很多”字符串以确保它们已设置,但由于某种原因我仍然无法访问它们。

4

2 回答 2

4

global语句不在脚本的开头;它们进入需要访问全局变量的函数内部。所以而不是:

global x
x = 0

def increment_x():
    x += 1
    return x

您需要使用:

x = 0

def increment_x():
    global x
    x += 1
    return x
于 2012-09-30T22:14:30.863 回答
2

在尝试访问全局变量的函数内部时,您需要使用关键字global,否则它将查找本地定义 - 这当然不存在。


global global_variable

def set_var ():
  global global_variable

  global_variable = 3

def print_var ():
  global global_variable

  print int(global_variable)

set_var   ()
print_var ()

global_variable = 321

print_var ()

输出:

3
321
于 2012-09-30T22:13:03.853 回答