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;
|
||||
}
|
||||
|
||||
PikaObj* _pika_lua_require(PikaObj* self, char* module) {}
|
||||
|
||||
void _pika_lua___del__(PikaObj* self){
|
||||
pika_debug("lua close!\r\n");
|
||||
lua_close(g_pika_L); // 关闭 Lua 状态机,释放所有关联的资源
|
||||
|
@ -12,6 +12,4 @@ def evalLine(line: str) -> any: ...
|
||||
class LuaTable:
|
||||
pass
|
||||
|
||||
def require(module: str)-> LuaTable: ...
|
||||
|
||||
def __del__():...
|
||||
|
@ -34,5 +34,32 @@ def eval(cmd: str):
|
||||
def evalLine(line: str):
|
||||
return _pika_lua.evalLine(line)
|
||||
|
||||
def require(module: str):
|
||||
return _pika_lua.require(module)
|
||||
def getVar(name: str):
|
||||
# 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)
|
||||
|
||||
def getVar(name: str):
|
||||
print("getVar: %s" % name)
|
||||
# print("getVar: %s" % name)
|
||||
return eval("return %s" % name)
|
||||
|
||||
def setVar(name: str, value):
|
||||
print("setVar: %s = %s" % (name, value))
|
||||
# print("setVar: %s = %s" % (name, value))
|
||||
eval("%s = %s" % (name, value))
|
||||
|
||||
class LuaModuleProxy:
|
||||
|
Loading…
x
Reference in New Issue
Block a user