我正在尝试为Lua源字符串编写eval()
函数的Pyton 3包装器。
为了在Python中执行Lua表达式,我使用Lupa库中的eval()
。但是,Lupa中eval()
的签名与Python内置eval()
:
eval(source: str)
,eval(source: str, globals: dict, locals: dict)
。当然,如果globals
和locals
是None
,我可以简单地编写我的函数。在自我扭曲的评估中调用Lupa的评估就足够了:
import lupa
lua_run = lupa.LuaRuntime(unpack_returned_tuples=True)
def eval(expression, globals=None, locals=None):
return lua_run.eval(expression)
但是,如果我想转移非空globals
和locals
词典,我该怎么做?
也许,这在Lupa中是不可能的,我必须使用其他一些库?