JavaScript flatMap 展开深度:每项能变成多条,为什么里面还有一层数组 一份样品清单里,每个样品拥有零个或多个颜色。导出时需要一条“样品加颜色”明细,普通 map 会得到数组套数组;flatMap 可以把每次回调返回的数组接到最终结果里。但它只展开一层,返回值多包一层方括号,结果中仍会留... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
JavaScript reduce 省略初值:对象数量想求和,为什么结果先出现一段对象文字 从两个零件记录里汇总数量,回调写成“累计值加当前数量”,却得到带有 [object Object] 的字符串。常见原因是省略了初值:reduce 会拿第一条记录本身作为累加器,并从后面的元素开始调用回调。第一条记录不... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite json_each 与 json_tree:看见了数组,为什么还没有拿到里面的元素 把嵌套配置交给 json_each,结果里出现了 panel 和 sizes 两行,却没有 theme 或每个尺寸。json_each 在这里展开的是根对象的直接孩子;一个孩子是对象、另一个孩子是数组,它不会自动把它... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite OR FAIL 与 ABORT:一条插入报错,前面写进去的行为什么还在 一次多行插入遇到重复编号,应用收到 IntegrityError,便认为这条语句一行也没写入。使用默认的 ABORT 时这个判断通常符合本例,但如果 SQL 明确写了 OR FAIL,失败点之前的成功修改会留下来。只... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python __slots__ 继承:父类限制了字段,为什么子类还能随手增加属性 基础记录类用 __slots__ 固定了 name 字段,给对象多写一个 note 会报错。后来只是加了一个不含任何代码的子类,同样的 note 赋值却成功了。父类的槽位没有失效:子类仍然继承那些字段,同时因为没有声... yunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Python total_ordering:比较方法补齐了,为什么异类对象仍应返回 NotImplemented 给优先级对象写了 __eq__ 和 __lt__,再加 total_ordering,就能使用小于等于和大于等于。随后有人把对象与普通整数比较,方法里的 other.value 报了错。装饰器只负责根据已有比较方法补... yunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Python UserDict 与 dict 子类:重写了 __setitem__,为什么 update 仍绕过转换 想让配置键统一大写,最直接的做法是继承 dict 并重写 __setitem__。单条赋值测过没有问题,接上 update 批量导入后,小写键却重新出现。问题在于“某个方法完成写入”和“这个方法一定调用被重写的钩子”... yunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Python getattr_static:只是检查属性,为什么 property 里的代码已经执行了 给对象生成字段说明时,程序只想确认 total 是否存在,于是先调用 hasattr,再调用 getattr 展示值。结果查询计数多了两次,原本只读的检查还触发了计算。属性访问并不总是从字典拿出一个值;propert... yunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Python re.findall 捕获组:只加了一对括号,结果为什么从整段变成编号 脚本从文本里提取零件编号,原来返回 A-12、B-34。后来为了方便给字母部分加上分组,输出突然只剩 A、B;再加一组数字,结果又变成元组。匹配位置可能完全没变,改变的是 findall 根据捕获组数量决定的返回结构... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python strptime 省略年份:三月能解析,为什么二月二十九日突然报错 一个每年重复使用的展览目录只保存“月/日”。大多数值都能用 %m/%d 解析,只有 02/29 报出日期越界。输入未必有错:datetime.strptime 会为没有提供的部分使用默认值,其中年份是 1900,而这... yunqueblog/ 技术教程/ 2026-10-02/ 2 阅读