为什么我在嵌入函数的exec中遇到错误?

时间:2011-06-29 11:00:52

标签: python compiler-construction

我正在尝试为我的游戏制作一个“编译器”(这样人们可以做一些有趣但不注入代码的东西),主要用于声明性的“代码”(看起来像这样:{"player_location":"IceHall.A7", "print", "You are teleported somewhere", "tiles":{"FirePlace.B3":{'Type':"Corner", "Actions+":{....}}}}。是一个动作的表示方式;它是在玩家完成时调用的。 无论如何,它必须编译成一个函数。当我在交互式解释器中尝试类似的东西时(具体来说:

def compile(code):
    def act():
       exec code
    return act

)。这(或多或少会在决赛中出现,除了由我构建的“代码”)引发了一个奇怪的错误:

  

文件“”,第3行语法错误:
  不合格的执行官是不允许的   函数'act'它是一个嵌套的   功能

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

this question所述,答案是缺乏背景。我想在locals(),globals()

中执行exec代码