【问题标题】:UnboundLocalError: local variable 'turn' referenced before assignment - pythonUnboundLocalError:分配之前引用的局部变量'turn' - python
【发布时间】:2020-06-04 14:17:03
【问题描述】:

尝试查找此内容,但没有人对全局变量有此问题。出于某种原因,如果我不将全局转入函数中,它会一直给我这个错误。

global turn
turn = 1
def turn_changer():
    if turn == 1:
        turn = 2
    else:
        turn = 1

【问题讨论】:

  • 您正在跨范围使用turn。如果您仅声明global,您正在尝试的事情是可能的。

标签: python processing


【解决方案1】:

This article 可能对你有帮助。本质上,由于 python 的变量作用域,您无法访问函数之外的变量。编译器需要一个名为 turn 的局部变量(在函数体内)。

当它没有找到它时,它会抛出你描述的错误。因此,如果您需要引用该变量,您可以按照您的建议指定global turn,也可以将变量turn 传递给函数。

【讨论】:

  • 对不起,它编辑了我在函数之外有全局的部分,每当我在函数之外调用它时,它都会给我一个错误,我在调用它之前就调用它,我我更新了代码
  • 在这种情况下@ArcticFox 的答案是更好的选择
  • 据我所知,在您的代码中,global turn 行没有做任何事情。只是在方法/类之外创建变量意味着它已经是全局的
【解决方案2】:

您需要指定您将使用“全局”turn 变量,这将起作用:

turn = 1
def turn_changer():
    global turn
    if turn == 1:
        turn = 2
    else:
        turn = 1

【讨论】:

  • 对不起,它编辑了我在函数之外有全局的部分,每当我在函数之外调用它时,它都会给我一个错误,我在调用它之前就调用它,我我更新了代码
猜你喜欢
  • 1970-01-01
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 2020-01-16
相关资源
最近更新 更多