暂无搜索历史
Python 3.11 有个少有人讲清的变化:try 块在正常路径上不再收门票了。实测(CPython 3.13.14)带 try 的函数 147.8 ns/次...
几乎每个 Python 教程都会告诉你:「is 比较身份,别用它比较数字,因为只有 -5 到 256 的小整数被驻留」。可如果你真在机器上敲一遍,会看到一个让教...
结论先行:GIL 不是「Python 慢」的病因,而是「同一进程里多个线程不能同时跑字节码」的一把大锁——CPU 密集型任务上,2 个线程跑 2 份活的实测加速...
结论先行:with 不是语法糖版的 try/finally——它把「资源生命周期」拆成了两次函数调用:__enter__ 拿资源、__exit__ 还资源,而 ...
结论先行:yield 不是「函数返回」,而是「带着现场离开」——生成器把局部变量、执行位置、甚至待接收的返回值,全部塞进一个 192 字节的 generator...
结论先行:import 的「第二次免费」靠的是一张字典——sys.modules。模块一旦加载过,再次 import 只是 230 纳秒的字典查询;但第一次 i...
结论先行:闭包不是"把变量复制进来",而是把一个叫 cell 的盒子跟函数绑在了一起。这个盒子里的内容在函数创建之后还能变——Python 著名的"循环里全是 ...
结论先行:Python 的一次函数调用不是「一条跳转指令」,而是解释器现场搭一座「栈帧」——保存返回地址、局部变量、命名空间,再按字节码逐条分派执行,最后拆掉栈...
结论先行:super() 找的不是"父类",而是 MRO(方法解析顺序)链表里、位于当前类"之后"的那一个类。单继承时这两者恰好重合,所以用错了也没人发现;一旦...
结论先行:Python 3.11 起,"进入 try 块"的开销降到了噪声级(实测 +2ns),这就是"零成本异常"——成本没有消失,是全部挪到了"抛异常"那一...
结论先行:Python 的 sorted 和 list.sort 用的是 Timsort——一种"先找有序段、再把有序段归并起来"的混合排序算法。它在最好情况下...
结论先行:CPython 的垃圾回收主力是引用计数——每个对象头里存着一个计数,引用清零的瞬间对象立即被释放,实时性拉满。但引用计数有一个致命软肋:循环引用(A...
结论先行:dict 查得快,不是因为它"会找",而是因为它"会算"——用键的哈希值直接算出该去哪个槽位拿数据,理论上一步到位,和字典里存了多少个键几乎无关。但这...
结论先行:dataclass 不是一个新数据类型,而是@dataclass装饰器——它替你自动生成__init__、__repr__、__eq__这几个最烦的样...
结论先行:Python 的 with 不是语法糖,而是一套"自动收尾"协议——只要一个对象实现了 __enter__ 和 __exit__ 两个方法,就能进 w...
结论先行:GIL(全局解释器锁)是 CPython 里一把"全局锁",保证同一时刻只有一个线程在跑 Python 字节码。它锁的是"解释器执行权",不是你的变量...
结论先行:***args** 把多出来的位置参数收成一个元组,`kwargs把多出来的关键字参数收成一个字典。它不是"任意参数"的魔法,而是"打包/解包"语法。...
先给结论:with 语句的本质,是在代码块进入时自动调用 __enter__、退出时自动调用 __exit__,它解决的核心问题只有一个——不管中间是正常结束还...
先给结论:requests 的默认配置几乎全是"危险默认"——默认没有超时、默认不重试、默认每次新建连接。绝大多数线上事故不是 requests 的 bug,而...
结论先行:merge 出问题,八成不是语法错,而是连接键的重复值、dtype 不一致、以及 how 的默认值这三件事。本文用 9 组「症状 → 原因 → 修法」...
暂未填写公司和职称
暂未填写技能专长
暂未填写学校和专业
暂未填写个人网址