我正在尝试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 中是不可能的,我必须使用其他一些库?