将Python全局变量和本地变为Lua

时间:2016-02-19 14:36:22

标签: python python-3.x lua eval lupa

我正在尝试为Lua源字符串编写eval()函数的Pyton 3包装器。

为了在Python中执行Lua表达式,我使用Lupa库中的eval()。但是,Lupa中eval()的签名与Python内置eval()

不同
  • Lupa eval:eval(source: str)
  • Python eval:eval(source: str, globals: dict, locals: dict)

当然,如果globalslocalsNone,我可以简单地编写我的函数。在自我扭曲的评估中调用Lupa的评估就足够了:

import lupa

lua_run = lupa.LuaRuntime(unpack_returned_tuples=True)

def eval(expression, globals=None, locals=None):
    return lua_run.eval(expression)

但是,如果我想转移非空globalslocals词典,我该怎么做?

也许,这在Lupa中是不可能的,我必须使用其他一些库?

0 个答案:

没有答案