我正在尝试为我的游戏制作一个“编译器”(这样人们可以做一些有趣但不注入代码的东西),主要用于声明性的“代码”(看起来像这样:{"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'它是一个嵌套的 功能
我该如何解决这个问题?