python教程技术文章
-
本文说明 Python asyncio.as_completed 如何按完成顺序消费任务结果,并处理异常、超时、任务身份和剩余任务清理。144 收藏 -
Python 包被压缩为 zip 后,使用 importlib.resources.files() 返回 Traversable,直接读取文本或二进制资源;只有下游 API 强制要求真实路径时,才用 as_file() 在上下文内临时获取 pathlib.Path。143 收藏 -
QueueListener 的关键不是把日志放进队列,而是退出时保持正确顺序:先停止业务线程继续产生日志,再调用 stop() 发送停止信号并等待监听线程结束,最后刷新和关闭 Handler。本文给出最小写法、关闭边界和异常兜底。143 收藏 -
Python contextvars 可以用 copy_context() 复制当前上下文,再用 Context.run() 让回调在副本中读取和修改 ContextVar。本文说明上下文隔离、外层恢复、空 Context、重复进入和异常传播等边界。143 收藏 -
Python 3.15 的 profiling.sampling 同时支持 wall-clock 和 cpu 采样。本文从观测目标、命令组合和生产排障场景说明两种模式的取舍,并提醒统计采样、短脚本和版本匹配的边界。138 收藏 -
Python dataclasses 处理列表、字典等可变字段时,应使用 field(default_factory=...) 为每个实例创建独立对象。本文从共享状态问题出发,说明工厂调用时机、显式传参和常见配置错误。136 收藏 -
Python 3.15 延迟导入的启动收益需要按入口测量。本文比较普通导入、函数内导入与显式 lazy import,提供新进程测量示例,并说明首次使用成本、异常时机和版本兼容取舍。133 收藏 -
文章 · python教程 | 3天前 | 队列 · 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 收藏 -
InterpreterPoolExecutor 隔离的是工作解释器,不保证每次 submit 都获得全新解释器。本文说明如何用参数、函数局部状态和返回值避免任务串状态,并比较 initializer 与进程回收方案。130 收藏 -
Textual Worker取消后,异步任务应让CancelledError穿过并在finally中释放资源;线程Worker不能强制终止,需要轮询is_cancelled,在安全检查点停止,并通过call_from_thread更新界面。129 收藏 -
从大文件生成器管道的三个常见故障入手,讲清同步按需拉取的背压边界、提前停止时的关闭级联,以及保留行号和原始原因的异常传播写法。126 收藏 -
讲清 Python 3.13+ asyncio.Queue shutdown(False) 与 shutdown(True) 下 put、get、join 等待者的唤醒结果,以及消费者的安全收尾写法。124 收藏 -
Python 的 bisect_left 和 bisect_right 分别找到重复分数的左、右插入点,两个下标组成左闭右开区间,直接切片即可得到全部匹配项。118 收藏 -
Python tomllib 读取 TOML 时要区分 load 与 loads:磁盘文件使用 rb 模式交给 load,内存 bytes 可包装为 BytesIO,字符串才交给 loads。114 收藏