Python 为什么嵌套在函数中的exec会出错?

Python 为什么嵌套在函数中的exec会出错?,python,compiler-construction,Python,Compiler Construction,我正在尝试为我的游戏制作一个编译器,这样人们就可以做有趣的事情,而不是注入代码,对于主要是去极化的代码,它看起来是这样的:{player_location:IceHall.A7,print,你被传送到某个地方,tiles:{firplace.B3:{'Type':Corner,Actions+:{…}}。这就是行动的表现方式;当玩家这样做时,它被调用。 无论如何,它必须被编译成一个函数。当我在交互式口译员中尝试类似的东西时: def compile(code): def act():

我正在尝试为我的游戏制作一个编译器,这样人们就可以做有趣的事情,而不是注入代码,对于主要是去极化的代码,它看起来是这样的:{player_location:IceHall.A7,print,你被传送到某个地方,tiles:{firplace.B3:{'Type':Corner,Actions+:{…}}。这就是行动的表现方式;当玩家这样做时,它被调用。 无论如何,它必须被编译成一个函数。当我在交互式口译员中尝试类似的东西时:

def compile(code):
    def act():
       exec code
    return act
。这或多或少是最终的结果,除了我正在构建的代码引发了一个奇怪的错误:

文件,第3行语法错误: 不允许在中使用不合格的exec 函数“act”它是一个嵌套的 功能


我该如何解决这个问题?

如中所述,答案是缺乏背景。我想要本地、全局的exec代码

您可能想使用pyparsing这样的库来编写自己的解析器。代码到底包含什么?你的程序对我来说运行得很好,它没有给出任何这样的语法错误。给出一个字符串代码可以容纳的示例。试试这个。看起来他们遇到了同样的问题并且解决了。好吧,我想这就解决了。谢谢大家。