0

我正在制作一种自定义编程语言。这是我的代码中的一个类中的一个方法。当我需要返回结果时,就会发生错误。

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)

有人帮忙吗?

4

1 回答 1

0

result如果没有 if 语句的计算结果为 true,则未定义,因此当您尝试使用result. 您可以设置一个默认值,例如result = None或其他东西并在最后检查它,或者您可以使用else而不是else if最后一个分支。

于 2020-06-13T01:57:21.807 回答