【发布时间】:2018-10-02 01:43:09
【问题描述】:
如果我使用compile()和exec()来执行用户输入的一些代码,代码中定义的函数或变量可以在外面再次使用吗?
例如:
code = ""
while 1:
line = input("")
if line == "":
break
code += line
exec(compile(code, "code", "exec"))
print(test()+1)
这不会像我预期的那样返回6。它给出了NameError,但编译或执行代码没有问题。如果代码只是一个字符串而不是输入,则没有错误。有没有办法使用test()这个功能?
【问题讨论】: