我正在尝试eval()为 Lua 源字符串的函数编写 Pyton 3 包装器。
为了在 Python 中执行 Lua 表达式,我使用eval()Lupa库。但是 Lupa 中的签名eval()与 Python 内置的不同eval():
- 卢帕评估:
eval(source: str), - Python 评估:
eval(source: str, globals: dict, locals: dict).
当然,如果globals和locals是None,我可以简单地编写我的函数。在自己编写的 eval 中调用 Lupa 的 eval 就足够了:
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 中是不可能的,我必须使用其他一些库?