我试图复制粘贴并运行基本上如下所示的python代码:
mycode = """
def f():
print("f called")
f()
"""
eval(mycode)
收到错误
File "<string>", line 2
def f():
^
IndentationError: unexpected indent
如果我改变缩进
mycode = """
def f():
print("f called")
f()
"""
然后我收到错误
File "<string>", line 2
def f():
^
SyntaxError: invalid syntax
这是一个破坏的代码,我试图运行,或者我可以以某种方式解决这个问题? 原始代码应该可以运行&#34;原样&#34;,没有任何修改。
我在IPython 3.6.0中试过这个
答案 0 :(得分:2)
您无法在eval
中定义一个函数,该函数用于表达式。
使用exec
:
>>> mycode = """
... def f():
... print("f called")
...
... f()
... """
>>> exec(mycode)
f called