繁体   English   中英

为什么我的全球客户不全球化?

[英]Why aren't my globals global?

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

global lotRow
global lotCol

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

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

这给了我:

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

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

global语句不在脚本的开头。 它们位于需要访问全局变量的函数内部。 因此,而不是:

global x
x = 0

def increment_x():
    x += 1
    return x

您需要使用:

x = 0

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

在试图访问全局变量的函数内部时,您将需要使用关键字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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM