python教程技术文章
-
Python itertools.batched 默认会保留末尾不足 n 个元素的短元组;如果业务必须整组处理,可以使用 Python 3.13 引入的 strict=True,让不完整尾组直接抛出 ValueError。141 收藏 -
Python 日志重复打印通常不是 logger 调用了两次,而是同一条记录沿父子层级交给多个 handler。本文用最小示例拆开 propagate、handler 和配置初始化顺序,给出可复现的排查与修复方法。139 收藏 -
Python 3.15 的 profiling.sampling 同时支持 wall-clock 和 cpu 采样。本文从观测目标、命令组合和生产排障场景说明两种模式的取舍,并提醒统计采样、短脚本和版本匹配的边界。138 收藏 -
Python 的 shared_memory 共享数组,本质是共享一段字节缓冲区,再由各进程用同一名称和一致的 shape、dtype 重新映射。本文给出创建、附加、并发边界和资源清理方案。137 收藏 -
Python dataclasses 处理列表、字典等可变字段时,应使用 field(default_factory=...) 为每个实例创建独立对象。本文从共享状态问题出发,说明工厂调用时机、显式传参和常见配置错误。136 收藏 -
Python TopologicalSorter 会通过 get_ready() 返回当前所有可执行节点组成的元组;处理完这一批后调用 done(*nodes),才能解除后继节点的依赖。本文说明依赖图写法、prepare()、is_active()、CycleError 与并发消费边界。136 收藏 -
Python 3.12 引入的 pathlib.Path.walk 适合做目录统计、缓存清理和文件审计。本文用一个临时目录清理任务讲清 top_down、dirnames 剪枝、on_error 与符号链接边界,并给出兼容旧版本的选择。135 收藏 -
itertools.batched 会惰性地把迭代器分成固定大小的元组,但默认允许最后一批不足 n。本文用订单编号批处理示例说明 strict=True 何时抛出 ValueError、如何选择补齐或拒绝,以及怎样验收没有静默漏数据。133 收藏 -
Python 3.15 延迟导入的启动收益需要按入口测量。本文比较普通导入、函数内导入与显式 lazy import,提供新进程测量示例,并说明首次使用成本、异常时机和版本兼容取舍。133 收藏 -
文章 · python教程 | 2星期前 | 队列 · Python教程 · asyncio · Python 消费者 asyncio.Queue Queue.shutdown QueueShutDown
Python 3.13 为 asyncio.Queue 增加 shutdown() 和 QueueShutDown。本文按新旧版本对比生产者停止、消费者排空、join 收尾和兼容降级,给出可直接改造的队列关闭写法。133 收藏 -
Python 3.12+ 可用类型参数语法改写通用类、函数和类型别名。本文用 Box[T]、first[T] 与 Pair[T] 说明迁移步骤,并列出 Python 3.11 兼容边界。132 收藏 -
Python sched 取消尚未触发的定时事件,需要保存 scheduler.enter 或 enterabs 返回的事件对象,再交给同一个调度器的 cancel;事件不在队列时会抛出 ValueError。本文说明事件句柄、重复取消和业务任务映射的处理方式。132 收藏 -
Python 项目里相对路径不稳定,通常不是 pathlib 的问题,而是把当前工作目录 cwd 和脚本位置 __file__ 混在了一起。本文用配置文件读取与 pytest 临时目录示例,拆开两种路径基准,并给出可验收的写法。131 收藏 -
Python zipfile 默认支持 ZIP64 扩展,但 allowZip64 与 force_zip64 解决的是不同问题。本文分别说明已知大小文件和未知大小流式数据的写法,并解释 LargeZipFile 的触发边界与兼容注意。131 收藏 -
plistlib.UID 不是普通 int 的别名,而是为二进制 plist 保留 UID 类型语义的包装对象。本文用一个小工具说明类型判断、数值转换、写回格式和兼容边界。131 收藏