编写一个模仿IDLE中REPL的函数:

时间:2016-02-13 07:39:08

标签: python read-eval-print-loop

我正在尝试在IDLE中编写一个内部REPL,将所有内容记录到文本文件中。

类似

def myrepl():
    myinput = ''
    with open("myrepl.txt", "a") as log:
        while not myinput == "EXIT":
            myinput = input("Enter an expression to evaluate.\n")
            log.write(myinput + "\n")
            if myinput == "EXIT":
                break
            eval(myinput)
            print(eval(myinput))
            log.write(str(eval(myinput)) + "\n")

这会在我输入内容时返回错误。当我尝试进行分配时,eval()也会出错。当我输入不正确的东西时,REPL也会中断。

有没有办法处理这些异常?如果是这样,怎么样?另外,有没有办法将eval()的输出捕获为字符串?以str(eval("print(0)"))为例,会产生额外的None

0 个答案:

没有答案