feat: 改进对象系统

This commit is contained in:
2026-01-01 20:18:18 +08:00
parent 52ef6c65d4
commit 238013ac46
39 changed files with 682 additions and 180 deletions

View File

@@ -1,18 +1,19 @@
class Evalizer():
class Evalizer:
"""几乎无副作用的模板系统
接受环境信息并创建一个模板解析工具, 工具传入参数支持list, dict及其嵌套
接受环境信息并创建一个模板解析工具, 工具传入参数支持list, dict及其嵌套
副作用问题: 仅存在于 eval 函数
"""
# TODO: 弃用风险极高的 eval
# 理论上已经限制了全局函数 但eval仍有风险
# TODO: 异步/多线程执行避免堵塞
def __init__(self, environment: dict) -> None:
self.env = environment
def __call__(self, anyobj):
return self.travel(anyobj)
def travel(self, anyobj):
if isinstance(anyobj, list):
return list(map(self.travel, anyobj))
@@ -30,4 +31,4 @@ class Evalizer():
ret = eval(s, {}, self.env)
if not isinstance(ret, str):
ret = str(ret)
return ret
return ret