最新Python untokenize 往返边界:词元完全相同,为什么源码空格和返回类型仍然变了 写源码改写器时,先切成词元、再原样拼回,看上去应该什么都没改。但版本控制却出现一堆空格差异,写文件时还可能因bytes和str类型不一致而报错。问题在于词元往返和字节往返是两份不同契约:前者保住语言片段及其顺序,后者... yunqueblog/ 技术教程/ 2026-10-04/ 2 阅读
最新Python atexit 注销重复回调:只调用一次 unregister,为什么两份清理任务都消失了 插件初始化时把同一个清理函数注册了两次,只是给它传入不同标签。后来其中一个插件要取消清理,调用一次unregister之后,两份回调都没有执行。这里不能用“删除最后加入的一项”来理解注销接口:它的匹配对象是函数,而不... yunqueblog/ 技术教程/ 2026-10-04/ 1 阅读
最新Python selectors 更新附带数据:modify 已经完成,旧 SelectorKey 为什么仍显示旧阶段 一个连接先处于握手阶段,收到信息后切换到正文阶段。程序已经调用selector.modify更新会话数据,调试器里早先保存的key却还写着旧阶段,于是很容易怀疑监听器没有更新。问题可能只是把一份旧注册描述当成了会自动... yunqueblog/ 技术教程/ 2026-10-04/ 1 阅读
最新Python 软关键字检查:match 明明列在名单里,为什么仍能作为变量名 给代码生成器做字段命名校验时,把所有“像语法的单词”放进同一张禁用表,看似稳妥,却可能把合法名称全部拒绝。另一种相反的错误是只看isidentifier,看到if返回真就允许它进入赋值语句。名称是否合法至少有字符形式... yunqueblog/ 技术教程/ 2026-10-04/ 1 阅读
最新GNU tac 的分隔符归属:反转 A:B:C,为什么结果不是 C:B:A 想把冒号分隔的三项倒过来,很多人会预期得到C:B:A。但tac按记录工作,分隔符会归属于相邻的一条记录,而不是先移走、反转项目、再平均插回。若原文末尾没有分隔符,反转后的边界就可能看起来黏在一起。理解记录究竟包含哪些... yunqueblog/ 技术教程/ 2026-10-04/ 1 阅读
最新GNU timeout 的状态归属:同样被终止,为什么一次返回124另一次返回143 给命令套上timeout后,外层脚本需要决定是重试、报警还是继续。但一个非零退出码可能来自业务程序本身,也可能来自超时包装器。启用preserve-status后,同样触发时间限制,得到的数字又会变化。先辨明返回状态... yunqueblog/ 技术教程/ 2026-10-04/ 1 阅读
最新GNU expand 的制表停靠位:设置四列,为什么一个 TAB 有时只变成一个空格 把TAB替换为四个空格,看起来像一种简单的格式统一方案,但这与每四列设置一个制表停靠位并不相同。真正的制表符表达的是跳到下一个位置,需要几个空格取决于前面已经占了几列。若忽略当前列,表格对齐和代码缩进都可能在转换以后... yunqueblog/ 技术教程/ 2026-10-04/ 1 阅读
最新GNU head 与 tail 的带符号行数:同样写二,为什么得到四种范围 从导出文件删除表头和尾部汇总,乍看只需要一个数字。但head与tail对行数前面的符号有各自语义:前几行、末几行、排除末几行以及从某行开始,是四个不同的范围。把数字都写成二,有助于看出差异来自选项规则,而不是样本长度... yunqueblog/ 技术教程/ 2026-10-04/ 1 阅读
最新DPP怎样给一组选项打分:两件都很好,合在一起却可能概率为零 为检索结果、文档摘要或示例库挑一组材料时,逐条高分不保证整组互补。行列式点过程DPP把集合里的相似性放进联合概率:平行的特征方向无法提供新的体积,因而不鼓励被一起选入。这个几何描述很容易听懂,但只有把所有子集列出来,... yunqueblog/ AI分享/ 2026-10-04/ 1 阅读
最新C51把回报投回固定网格:概率没丢,均值与方差会怎样变 分布强化学习把随机回报表示为一整份分布,而不只保存一个期望。C51的类别表示使用固定回报支撑点;一次Bellman目标经过奖励平移和折扣缩放,落点往往不再位于原网格,于是需要把概率投回去。最容易写错的地方,是把“落点... yunqueblog/ AI分享/ 2026-10-04/ 1 阅读