缩进字符串中的缩进规则

时间:2017-04-25 13:11:12

标签: python python-3.x ipython

我试图复制粘贴并运行基本上如下所示的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中试过这个

1 个答案:

答案 0 :(得分:2)

您无法在eval中定义一个函数,该函数用于表达式。

使用exec

>>> mycode = """
... def f():
...   print("f called")
...
... f()
... """
>>> exec(mycode)
f called