UnboundLocalError:赋值之前引用的局部变量为全局变量

2024-03-29 13:52:07 发布

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

我收到:

UnboundLocalError: local variable 'ImgY' referenced before assignment

当我这样做的时候:

q = 0
def a():
  print(q)
while True:
  com = input("")
  if com == "":
    a()
  else:
    q = com

“a()”一词:

def df():
  global deas
  if vs != 1:
    if deas == 0:
      deas = 1
      for a in range(ImgY):
        for s in range(ImgX):
          corrente[num[a] + num[s]] = " "
  else:
    if imp == 1:
      ImgX = q[0:1]
      ImgY = q[2:3]
      for a in range(int(ImgY)):
          for s in range(int(ImgX)):
            corrente[num[a] + num[s]] = q[s+5]
    else:
      if deas == 0:
        deas = 1
        for a in range(ImgY):
          for s in range(ImgX):
            corrente[num[a] + num[s]] = " "

我不明白为什么,因为ImgY是一个全局变量,在下面的行(全局变量)中定义为“ImgY=30” 其余的here


Tags: incomforifdefrangeelsenum
1条回答
网友
1楼 · 发布于 2024-03-29 13:52:07

在片段内部

def df():
  global deas
  if vs != 1:
    if deas == 0:
      deas = 1
      for a in range(ImgY):
        for s in range(ImgX):
          corrente[num[a] + num[s]] = " "

ImgY/ImgX似乎未分配。因此,如果它们是全局变量,请尝试:

def df():
  global deas,ImgY,ImgX
  if vs != 1:
    if deas == 0:
      deas = 1
      for a in range(ImgY):
        for s in range(ImgX):
          corrente[num[a] + num[s]] = " "

相关问题 更多 >