Python 为什么不';我的环球旅行社不是环球旅行社吗?

Python 为什么不';我的环球旅行社不是环球旅行社吗?,python,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”字符串

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

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”字符串,以确保它们已设置,但由于某些原因,我仍然无法访问它们。

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



输出:

3
321

在试图访问全局变量的函数中,您需要使用关键字
global
,否则它将查找本地定义,而本地定义当然不存在



输出:

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

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

global x
x = 0

def increment_x():
    x += 1
    return x
您需要使用:

x = 0

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

但是我的
global
语句和
getIDFromAxes(int(lotRow),int(lotCol))
都在主脚本中,因此是同一个函数,对吗?如果它们在同一个函数中,为什么要它们是全局的?我想你最好发布一些实际的代码。@DanielRoseman在那里一时糊涂,忘记了
getIDFromAxes()
是一个函数。将全局语句移动到函数中似乎是可行的。但是我的
global
语句和
getIDFromAxes(int(lotRow),int(lotCol))
都在主脚本中,因此是同一个函数,对吗?如果它们在同一个函数中,为什么您希望它们是全局的?我想你最好发布一些实际的代码。@DanielRoseman在那里一时糊涂,忘记了
getIDFromAxes()
是一个函数。将全局语句移动到函数中似乎是可行的。