UnboundLocalError:赋值前引用的局部变量“turn”-python

UnboundLocalError:赋值前引用的局部变量“turn”-python,python,processing,Python,Processing,尝试查找此项,但没有人对全局变量有此问题。出于某种原因,如果我不在函数中放置全局转折,它会不断地给我这个错误 global turn turn = 1 def turn_changer(): if turn == 1: turn = 2 else: turn = 1 可能对你有帮助。本质上,由于python的变量作用域,您无法访问函数之外的变量。编译器在名为turn的函数体内需要一个局部变量 当它找不到它时,它抛出您描述的错误。因此,如果需要引

尝试查找此项,但没有人对全局变量有此问题。出于某种原因,如果我不在函数中放置全局转折,它会不断地给我这个错误

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

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

当它找不到它时,它抛出您描述的错误。因此,如果需要引用该变量,可以按照建议指定全局转折点,也可以将变量转折点传递到函数中。

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

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


当它找不到它时,它抛出您描述的错误。因此,如果您需要引用该变量,您可以按照建议指定全局转向,也可以将变量转向传递到函数中。

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

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

圈数=1 def turn_转换器: 全球转向 如果匝数=1: 圈数=2 其他: 圈数=1
您需要指定将使用“全局”turn变量,这将起作用:

圈数=1 def turn_转换器: 全球转向 如果匝数=1: 圈数=2 其他: 圈数=1
您正在使用交叉作用域。如果您仅将其声明为全局,那么您正在尝试的是可能的。您正在跨作用域使用翻转。如果您仅声明为全局,则您可以尝试。抱歉,它编辑掉了我在函数外部具有全局性的部分,每当我在函数外部调用它时,它都会给我一个错误,即我在调用之前调用了它,我已更新了代码抱歉,它编辑掉了我在函数外部具有全局性的部分,无论何时我在函数外调用它,它都会给我一个错误,我在调用它之前就调用了它,我已经更新了代码对不起,它编辑掉了我在函数外调用全局的部分,无论何时我在函数外调用它,它都会给我一个错误,我在调用它之前就调用了它,我已经更新了代码在这种情况下@ArcticFox的答案是更好的选择。据我所知,在你的代码中,行global turn没有做任何事情。仅仅在方法/类之外创建变量就意味着它已经是全局变量了吗?对不起,它编辑掉了我在函数之外有全局变量的部分,每当我在函数之外调用它时,它就会给我一个错误,我在调用它之前调用它,我已经更新了代码在这种情况下@ArcticFox的答案是更好的选择。据我所知,在你的代码中,行global turn没有做任何事情。仅仅在方法/类之外创建变量就意味着它已经是全局变量了