为什么我的globals不是全球性的?

2024-10-01 00:25:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

global lotRow
global lotCol

然后,稍后,我使用函数将lotRow和lotCol设置为字符串。后来,我做了以下几件事:

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

这给了我:

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

我让def()在末尾打印“lot”字符串以确保它们已设置,但由于某些原因,我仍然无法访问它们。你知道吗


Tags: 函数字符串name脚本isdefnotglobal
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

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

global x
x = 0

def increment_x():
    x += 1
    return x

您需要使用:

x = 0

def increment_x():
    global x
    x += 1
    return x

相关问题 更多 >