python调用lua脚本

lua代码

入口函数是必须要填的

function test1(params)
    return 'test1:'..params
end

function test2(params)
    return 'test2:'..params
end

-- 入口函数,实现反射函数调用
function functionCall(func_name,params)
    local is_true,result
    local sandBox = function(func_name,params)
        local result
        result = _G[func_name](params)
        return result
    end
    is_true,result= pcall(sandBox,func_name,params)
    return result
end

python代码

from lupa import LuaRuntime
class Lua:
    def __init__(self):
        fileHandler = open('./code.lua')
        content = fileHandler.read()
        lua = LuaRuntime()
        lua.execute(content)
        g = lua.globals()
        self.function_call = g.functionCall

    def get_sign(self,data):
        res = self.function_call('sign', data)
        return res

if __name__ == '__main__':
    lua = Lua()
    sign = lua.get_sign("入参")
posted @ 2022-12-05 17:31  xsir161  阅读(634)  评论(0编辑  收藏  举报