style: 规范化部分模块注释

This commit is contained in:
2026-06-04 08:08:20 +08:00
parent b31c045aa5
commit 6a3fa75e13
33 changed files with 540 additions and 77 deletions
+32 -2
View File
@@ -1,19 +1,41 @@
class Evalizer:
"""几乎无副作用的模板系统
接受环境信息并创建一个模板解析工具, 工具传入参数支持list, dict及其嵌套
副作用问题: 仅存在于 eval 函数
接受环境信息并创建一个模板解析工具, 递归遍历数据结构,
"eval:" 前缀的字符串执行表达式求值.
副作用问题: 仅存在于 eval 函数调用.
Attributes:
env: 模板求值时的环境变量字典
"""
# TODO: 弃用风险极高的 eval
# TODO: 异步/多线程执行避免堵塞
def __init__(self, environment: dict) -> None:
"""初始化模板解析器
Args:
environment: 模板求值时的环境变量字典
"""
self.env = environment
def __call__(self, anyobj):
"""调用入口, 等同于 travel"""
return self.travel(anyobj)
def travel(self, anyobj):
"""递归遍历数据结构并展开模板表达式
支持 list, dict, tuple 的嵌套结构.
字符串以 "eval:" 开头时执行表达式求值.
Args:
anyobj: 任意 Python 对象
Returns:
展开后的对象
"""
if isinstance(anyobj, list):
return list(map(self.travel, anyobj))
elif isinstance(anyobj, dict):
@@ -29,5 +51,13 @@ class Evalizer:
return anyobj
def eval_with_env(self, s: str):
"""在环境变量上下文中执行表达式
Args:
s: Python 表达式字符串
Returns:
表达式求值结果
"""
ret = eval(s, globals(), self.env)
return ret