diff --git a/backend/app/engine/expressions.py b/backend/app/engine/expressions.py index cab96e95..e7db9014 100644 --- a/backend/app/engine/expressions.py +++ b/backend/app/engine/expressions.py @@ -331,8 +331,9 @@ class TruncatedRows: in、比较、拼接、转成文本、倒数第几行、取回的行之后的行号。按行号取取回范围之内的一行不记; 真假判断也不记——截断的结果至少有一行,「有数据」这件事是真的。 - 不继承 list:list 的 C 实现里有绕过子类方法的快路径(json 编码、[] + x 的 sq_concat 都直接读底层数组), - 记漏一处就是把截断的数当成完整的出具。属性一律带下划线,表达式碰不到(私有属性在静态检查里就拒了)。 + 不继承 list:list 有一批 C 实现按 PyList_Check 直接读底层数组(拼接、比较……),子类得把每个反射方法都 + 补上才不漏记,漏一处就是把截断的数当成完整的出具。独立的类只认这里实现的几样,没实现的写法直接报类型 + 错误,不会悄悄在截断的数据上算出一个数。属性一律带下划线,表达式碰不到(私有属性在静态检查里就拒了)。 """ __slots__ = ("_rows", "_use", "_path", "_count", "_artifact")