我正试图为我的游戏做一个“编译器”(这样人们就可以做有趣的事情,但不能注入代码),主要是去极化的“代码”(它看起来像这样:{"player_location":"IceHall.A7", "print", "You are teleported somewhere", "tiles":{"FirePlace.B3":{'Type':"Corner", "Actions+":{....}}}}
)。这就是一个动作的表现方式;当玩家做动作时,它被调用。
无论如何,它必须被编译成一个函数。当我在交互式解释器中尝试类似的东西时(特别是:
def compile(code):
def act():
exec code
return act
)。这(或多或少会是最终结果,除了我正在构建的“代码”)引发了一个奇怪的错误:
File "", line 3 SyntaxError:
unqualified exec is not allowed in function 'act' it is a nested function.
我该怎么办?在
正如this question中所说,答案是缺乏上下文。我想要locals()和globals()中的exec代码
相关问题 更多 >
编程相关推荐