def __init__(self, expr, env): self.expr = expr try: self.env = {key:env[key] for key in needs(expr)} except KeyError as e: raise UndefinedVariable(e.args[0])
def __init__(self, name, value): if name in builtins: raise AssignmentToBuiltin(name) self.name = name self.value = value self.needs = needs(value)