From b0c36b58802334fe68828511745c2dd229dd7ec1 Mon Sep 17 00:00:00 2001 From: ThearchyHelios Date: Sat, 3 Oct 2026 09:36:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=AA=E6=96=AD=E8=B7=9F=E8=B8=AA=EF=BC=9A?= =?UTF-8?q?=E6=94=B9=E6=AD=A3=E4=B8=8D=E7=BB=A7=E6=89=BF=20list=20?= =?UTF-8?q?=E7=9A=84=E7=90=86=E7=94=B1=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/engine/expressions.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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")