mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
support var proxy for pika_lua
This commit is contained in:
parent
c1ac93019e
commit
fc7c881ce5
@ -76,8 +76,6 @@ __exit:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
PikaObj* _pika_lua_require(PikaObj* self, char* module) {}
|
|
||||||
|
|
||||||
void _pika_lua___del__(PikaObj* self){
|
void _pika_lua___del__(PikaObj* self){
|
||||||
pika_debug("lua close!\r\n");
|
pika_debug("lua close!\r\n");
|
||||||
lua_close(g_pika_L); // 关闭 Lua 状态机,释放所有关联的资源
|
lua_close(g_pika_L); // 关闭 Lua 状态机,释放所有关联的资源
|
||||||
|
@ -12,6 +12,4 @@ def evalLine(line: str) -> any: ...
|
|||||||
class LuaTable:
|
class LuaTable:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def require(module: str)-> LuaTable: ...
|
|
||||||
|
|
||||||
def __del__():...
|
def __del__():...
|
||||||
|
@ -34,5 +34,32 @@ def eval(cmd: str):
|
|||||||
def evalLine(line: str):
|
def evalLine(line: str):
|
||||||
return _pika_lua.evalLine(line)
|
return _pika_lua.evalLine(line)
|
||||||
|
|
||||||
def require(module: str):
|
def getVar(name: str):
|
||||||
return _pika_lua.require(module)
|
# print("getVar: %s" % name)
|
||||||
|
return eval("return %s" % name)
|
||||||
|
|
||||||
|
def setVar(name: str, value):
|
||||||
|
# print("setVar: %s = %s" % (name, value))
|
||||||
|
eval("%s = %s" % (name, value))
|
||||||
|
|
||||||
|
class LuaModuleProxy:
|
||||||
|
_name:str = ''
|
||||||
|
def __init__(self, name: str):
|
||||||
|
self._name = name
|
||||||
|
|
||||||
|
def __getattr__(self, name: str):
|
||||||
|
return getVar("%s.%s" % (self._name, name))
|
||||||
|
|
||||||
|
def __setattr__(self, name: str, value) -> None:
|
||||||
|
if (name == "_name"):
|
||||||
|
setattr(self, name, value)
|
||||||
|
else:
|
||||||
|
setVar("%s.%s" % (self._name, name), value)
|
||||||
|
|
||||||
|
def require(module: str) -> LuaModuleProxy:
|
||||||
|
try:
|
||||||
|
eval("require('%s')" % module)
|
||||||
|
return LuaModuleProxy(module)
|
||||||
|
except:
|
||||||
|
print("require module '%s' failed" % module)
|
||||||
|
return None
|
||||||
|
@ -35,11 +35,11 @@ def evalLine(line: str):
|
|||||||
return _pika_lua.evalLine(line)
|
return _pika_lua.evalLine(line)
|
||||||
|
|
||||||
def getVar(name: str):
|
def getVar(name: str):
|
||||||
print("getVar: %s" % name)
|
# print("getVar: %s" % name)
|
||||||
return eval("return %s" % name)
|
return eval("return %s" % name)
|
||||||
|
|
||||||
def setVar(name: str, value):
|
def setVar(name: str, value):
|
||||||
print("setVar: %s = %s" % (name, value))
|
# print("setVar: %s = %s" % (name, value))
|
||||||
eval("%s = %s" % (name, value))
|
eval("%s = %s" % (name, value))
|
||||||
|
|
||||||
class LuaModuleProxy:
|
class LuaModuleProxy:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user