JavaScript 暂时性死区:外层已有同名变量,typeof 为什么仍然报错 把几行代码包进一个块,并在块末尾声明局部变量后,原先用于检查外层配置的 typeof 却突然抛错。原因不是 typeof 失去类型判断能力,而是同名的局部绑定已经影响整个块,执行尚未走到初始化时,它还不能被读取。存在... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite last_insert_rowid:刚插入的编号,为什么换连接或写日志后就变了 程序创建一条记录,接着写入另一张日志表,最后才查询 last_insert_rowid,拿到的编号却属于日志。另一次把查询交给连接池借出的新连接,结果又变成零。这个函数没有表名参数,因为它读取的是当前连接记住的最近插... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite instr 定位分隔符:零、空值和一基位置怎样决定拆分结果 一列备注按第一个冒号分成名称和内容,查询先用 instr 找位置,再交给 substr。普通样本没问题,缺少冒号的记录却可能被当成另一种合法拆分。原因是查找结果不仅是一串数字:它还包含“没找到”和“输入缺失”两种状态... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite CASE 求值次数:同一个函数写进两个 WHEN,为什么会执行两遍 给查询结果换一个状态名称,常见写法是连续判断某个表达式是否等于一、是否等于二。表达式如果只是读取普通列,看起来没什么区别;换成较昂贵的自定义函数后,第二个条件可能让同一函数再次执行。结果文字相同,并不说明求值过程也相... yunqueblog/ 技术教程/ 2026-10-02/ 4 阅读
Python accumulate 初始值:三次变化,为什么返回四个累计结果 做一个库存变化演示,起点是十件,随后依次增加三件、减少两件、增加五件。把 initial 设为十之后,结果列表却比变化次数多一个;再与三个事件名称直接配对,最后一次变化后的库存没有显示。问题不在加法,而是你把“事件序... yunqueblog/ 技术教程/ 2026-10-02/ 4 阅读
Python 月历网格:明明只查十月,结果里为什么出现九月和十一月 准备一个按月展示活动的小页面,代码请求十月月历,展开结果后却有三十五个日期,第一项还在九月。如果直接按格子数量统计本月可用天数,就会多算。月历生成器通常服务于完整周的排版,它需要把首尾行补齐;月份统计和界面网格,应该... yunqueblog/ 技术教程/ 2026-10-02/ 4 阅读
Python traceback.clear_frames:保存报错以后,局部对象为什么迟迟没有释放 批处理把失败时的 traceback 对象放进列表,准备最后统一汇报。失败函数已经返回,里面的大对象却仍然活着,累计几百次后占用明显增加。这个现象不一定是垃圾回收失效:保存的回溯仍然指向栈帧,栈帧又可能留着局部变量。... yunqueblog/ 技术教程/ 2026-10-02/ 4 阅读
Python dataclass 字段清单:构造时传入的值,为什么没有出现在 asdict 里 把一段原始记录交给 dataclass,构造函数正常接收了它,导出字典时却找不到这个输入;类里另一项默认配置也没有进入字段列表。与其怀疑序列化漏字段,不如先看注解:普通字段、InitVar 和 ClassVar 在数... yunqueblog/ 技术教程/ 2026-10-02/ 4 阅读
Python heapq.merge:几路数据混在一起,为什么结果仍然乱序 把几个服务导出的时间记录合成一份报表时,看到 heapq.merge 会返回有序流,很容易直接把几路原始列表交给它。结果前面几项升序,后面却突然出现更小的值。问题并不是归并偶尔失灵,而是其中一路原本没有按同一规则排好... yunqueblog/ 技术教程/ 2026-10-02/ 4 阅读
Python splitext:隐藏文件的开头点,为什么不被当成扩展名 批量生成缩略图名称时,脚本想把扩展名换成新格式。直接按点拆开再取第一段,会把 report.final.png 变成 report,也会把开头带点的配置名拆成空字符串。文件名里的点承担不同角色,不能把所有位置都视作“... yunqueblog/ 技术教程/ 2026-10-02/ 4 阅读