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