UnboundLocalError "local variable result referenced before assignment" 带有变量,即使我分配了它
UnboundLocalError "local variable result referenced before assignment" with variable even though i assigned it
我正在制作自定义编程语言。这是我代码中 class 中的一个方法。当我需要 return 结果时,出现错误。
UnboundLocalError: local variable 'result' referenced before assignment
def visit_BinOpNode(self, node):
left = self.visit(node.left_node)
right = self.visit(node.right_node)
if node.op_tok.value == TT_PLUS:
result = left.add_to(right)
elif node.op_tok.value == TT_MINUS:
result = left.sub_to(right)
elif node.op_tok.value == TT_MUL:
result = left.mul_to(right)
elif node.op_tok.value == TT_DIV:
result = left.div_to(right)
return result.set_pos(node.pos_start, node.pos_end)
有人帮忙吗?
如果 if 语句的 none 计算结果为真,则 result
未定义,因此当您尝试使用 result
时,它会在最后一行出错。您可以设置一个默认值,如 result = None
或其他值,并在最后检查它,或者您可以在最后一个分支中使用 else
而不是 else if
。
我正在制作自定义编程语言。这是我代码中 class 中的一个方法。当我需要 return 结果时,出现错误。
UnboundLocalError: local variable 'result' referenced before assignment
def visit_BinOpNode(self, node):
left = self.visit(node.left_node)
right = self.visit(node.right_node)
if node.op_tok.value == TT_PLUS:
result = left.add_to(right)
elif node.op_tok.value == TT_MINUS:
result = left.sub_to(right)
elif node.op_tok.value == TT_MUL:
result = left.mul_to(right)
elif node.op_tok.value == TT_DIV:
result = left.div_to(right)
return result.set_pos(node.pos_start, node.pos_end)
有人帮忙吗?
result
未定义,因此当您尝试使用 result
时,它会在最后一行出错。您可以设置一个默认值,如 result = None
或其他值,并在最后检查它,或者您可以在最后一个分支中使用 else
而不是 else if
。