楔子
下面我们来看看如何使用python来执行lua代码。如果了解lua的话,可能会感到器官,我们之前调用C、调用go,都是调用其编写的动态库。可lua是脚本语言啊,难道也可以写动态库吗?其实我们不是调用动态库,而是直接执行lua代码。
这时候可能又有人猜到了,python执行lua代码,本质上应该还是通过lua解释器来调用吧。答案不是的,因为python的执行lua代码的包自带了一个lua解释器,并且是以pyd的形式。
因为lua解释器非常的精简,自带lua解释器的pyd文件只有500k左右,并且这还是包含了内置的标准库。在lua5.3中,一些内置的模块全部嵌入到解释器里面了。
为什么使用lua
首先lua它的定位就是嵌入到其它语言中,比如C++,来提供一些扩展功能。因此lua不具备独立开发大型应用的功能,虽然它和python都是动态语言,但是lua中有JIT(即时编译)技术,可以将lua代码编译成非常快速的机器码,甚至某些时候比一些编译语言还要快,下面我们就来看看如何使用吧。
python执行lua代码,需要使用一个包:lupa,直接pip install lupa即可。
举个栗子
import lupa
# 实例化一个lua解释器
lua = lupa.LuaRuntime()
# 类似于python中的eval,将字符串当成代码来执行
# 同时返回其结果
print(lua.eval("1 + 1")) # 2
lua_func = lua.eval(