UnboundLocalError:局部变量';第7行';分配前参考 我在python程序中遇到以下错误: 对于代码的这一部分:
提前Tar。您需要在内部声明它们或将它们传递给函数:UnboundLocalError:局部变量';第7行';分配前参考 我在python程序中遇到以下错误: 对于代码的这一部分:,python,Python,提前Tar。您需要在内部声明它们或将它们传递给函数: def Rotation_Top_Right(): # inside function Line7 = ("Y Y Y B B B G G G") Line2 = ("O O O") def Rotation_Top_Right(Line7,Line2): # use as parameters and pass 您也可以使用global,但我建议您不要使用 您还可以重命名函数中的变量,这些变量在实际重新分配值而不是更新值
def Rotation_Top_Right(): # inside function
Line7 = ("Y Y Y B B B G G G")
Line2 = ("O O O")
def Rotation_Top_Right(Line7,Line2): # use as parameters and pass
您也可以使用global
,但我建议您不要使用
您还可以重命名函数中的变量,这些变量在实际重新分配值而不是更新值时从全局命名空间中隐藏变量:
Line7 = ("Y Y Y B B B G G G")
Line2 = ("O O O")
def Rotation_Top_Right():
Line = (str(Line7) + (" ") + str(Line2))
Line_List = []
for i in range(12):
i -= 3
Line_List.append(Line.split(" ")[i])
for i in range(9):
Line_7 = Line_List[i] # change to Line_7
for i in range(3):
i -= 3
Line_2= Line_List[i] # change to Line_2
我仍然倾向于传递变量。您确定代码是这样组织的吗?你不是在
Line7
赋值之前调用函数吗?不是,函数是在赋值之后调用的。可能是@PabloAntonio的重复,不是,你为什么不试试呢?我在解释器中尝试过,它正在工作,但当我将所有内容复制到一个文件时,出现了错误。
def Rotation_Top_Right(): # inside function
Line7 = ("Y Y Y B B B G G G")
Line2 = ("O O O")
def Rotation_Top_Right(Line7,Line2): # use as parameters and pass
Line7 = ("Y Y Y B B B G G G")
Line2 = ("O O O")
def Rotation_Top_Right():
Line = (str(Line7) + (" ") + str(Line2))
Line_List = []
for i in range(12):
i -= 3
Line_List.append(Line.split(" ")[i])
for i in range(9):
Line_7 = Line_List[i] # change to Line_7
for i in range(3):
i -= 3
Line_2= Line_List[i] # change to Line_2