rpc_lua = {} function rpc_lua:call(fn_name, ...) return self[fn_name](self, ...) end function rpc_lua:test1(arg1, arg2, arg3) print "test1" end function rpc_lua:test2(arg1, arg2) print "test2" end rpc_server = {} local function rpc_server_index(o, key) rawset(o, key, function(...) print(key) print(...) end) return o[key] end setmetatable(rpc_server, {__index = rpc_server_index}) rpc_server.funca(1,2,3)