python教程技术文章
-
Python defaultdict 的下标读取会触发 __missing__,调用 default_factory 并把缺省值写回字典。本文对比 []、get()、in 和 keys/items 的差异,帮助你区分主动初始化与只读查询。482 收藏 -
用 Python configparser 的 ExtendedInterpolation 拆分基础值、环境覆盖和派生配置,讲清跨节引用、加载优先级、延迟插值、缺失键诊断与循环依赖处理。480 收藏 -
Polars表达式先描述列变换,放入select、with_columns等上下文后才产生结果;普通Python函数立即处理具体值。本文对比Expr、上下文、原生列运算与map_elements的边界,并给出选型建议。480 收藏 -
multiprocessing 处理大对象变慢,瓶颈常在 pickle 序列化、管道传输、反序列化和内存复制,而非计算本身。本文给出量化方法,并用小任务描述符、批量分块和 SharedMemory 改写数据通道。478 收藏 -
文章 · python教程 | 5天前 | 并发控制 · Python教程 · asyncio · 虚假唤醒 wait_for Python asyncio asyncio.Condition 异步同步
asyncio.Condition.wait() 返回后共享状态可能仍不满足要求。本文从多消费者空队列故障出发,说明 wait_for(predicate) 如何在锁内重复检查条件,并给出通知、超时、取消和代码审查的完整写法。478 收藏 -
用一个Jinja通知卡片项目说明StrictUndefined怎样暴露模板错拼与缺失变量,区分必填、可选、None和默认值,避免渲染失败被空白输出掩盖。477 收藏 -
Pydantic v2的before适合原始输入规范化,after适合类型明确后的业务约束。通过严格整数请求示例说明字段限制、返回值、权限分工与错误日志。469 收藏 -
Jinja 子模板重写 block 后,父区块内容不会自动保留;需要追加时在子区块中调用 super()。本文从覆盖现象出发,说明 super、extends、super.super() 和 scoped 的边界,并给出一份排查清单。468 收藏 -
遇到遗留命令或 POSIX 系统传来的非 UTF-8 环境变量时,Python 的 os.environb 可以保留原始 bytes。本文按触发场景、支持检查、读取流程和显式解码说明怎样安全接入,并梳理它与 os.environ 的同步关系及失败处理。464 收藏 -
从一次文件下载路径穿越排查出发,给出 pathlib 的安全拼接模板:拒绝绝对路径,解析根目录与候选路径,再用 relative_to 验证目录归属,并说明符号链接、strict 参数和竞态边界。463 收藏 -
Python functools.cached_property 的缓存写在实例同名属性上。修改源数据后删除该属性,下一次读取就会重新计算;本文同时说明 __dict__、__slots__ 与并发访问边界。463 收藏 -
Python free-threading 不是把解释器换成一个开关就结束了:原生扩展还要匹配 free-threaded wheel,声明不使用 GIL,并补足此前被 GIL 掩盖的线程安全测试。本文按解释器、轮子、模块声明和 CI 四层整理一份可执行兼容清单。439 收藏 -
TypeGuard 可以把复杂容器在 True 分支收窄到更具体的类型,但不会替你转换运行时数据。本文用混合列表说明谓词写法、False 分支、list 不变性、Sequence 设计和 TypeIs 的取舍。437 收藏 -
Python 3.10 起可用 @dataclass(slots=True) 自动生成 __slots__,避免每个字段固定的小对象创建实例 __dict__。本文通过完整小项目对比批量实例内存,并说明序列化、继承、动态属性和弱引用的兼容边界。427 收藏 -
Python Polars 查看 LazyFrame 查询计划,核心是用 explain 对比未优化和优化后的逻辑计划,再用 show_graph 绘制逻辑或物理计划图。本文用一个小项目说明如何读懂过滤下推、列裁剪与执行边界。421 收藏