python教程技术文章
-
Python 的 typing.Protocol 主要服务静态结构化类型检查;即使加上 @runtime_checkable,isinstance() 也只适合确认属性是否存在,不会验证方法签名、参数类型、返回类型和业务行为。本文用代码拆开两种检查的边界,并给出运行时补强方案。254 收藏 -
用 Python typing.Protocol 为鸭子类型定义最小接口,约束方法、属性与泛型签名,并说明 runtime_checkable 的检查边界。246 收藏 -
文章 · python教程 | 1天前 | 并发 · 异常处理 · python · asyncio · CancelledError 结构化并发 ExceptionGroup Python asyncio TaskGroup asyncio gather
asyncio.TaskGroup 能在首个非取消异常出现时取消同组剩余任务,并在退出前等待全部任务收尾。本文给出最小写法、异常组处理和旧版本兼容方案。246 收藏 -
Python 3.13 起可用 copy.replace 为数据类、命名元组和自定义不可变对象生成字段变更副本。本文用一个小项目讲清统一写法、协议接入与浅层共享边界。245 收藏 -
用 importlib.resources.files 读取包内模板,说明 Traversable、as_file、压缩包资源和打包配置之间的边界。244 收藏 -
文章 · python教程 | 4星期前 | Python教程 · pathlib · 文件系统 · Python 目录权限 Python 3.15 pathlib.Path.mkdir parent_mode
Python 3.15 为 pathlib.Path.mkdir 增加 parent_mode,让递归创建目录时可以分别设置叶目录和中间目录的模式。本文解释 mode、parent_mode、parents 与 umask 的边界,并给出兼容旧版本的写法与验证清单。243 收藏 -
Python 的 asyncio.TaskGroup 没有原生 terminate 方法。本文按官方方案演示如何加入一个抛出专用异常的任务,让其余成员协作取消,并用 except* 精确处理终止信号。242 收藏 -
比较 Python asyncio.gather 与 TaskGroup 在异常传播、兄弟任务取消、结果收集和资源清理上的差异,给出按业务边界选择异步并发 API 的判断清单。237 收藏 -
用 Python RotatingFileHandler 按文件大小轮转日志,理解 maxBytes、backupCount、app.log.1 命名链,以及多进程写入时的安全边界。236 收藏 -
从 setup.py 迁移到 pyproject.toml 时,先划分构建后端、静态元数据和动态配置,再用 sdist、wheel、普通安装与 editable 安装逐项回归。236 收藏 -
跨平台使用 pathlib 读写文本时,显式设置 encoding,结合 BOM、原始字节和 errors 策略排查乱码与 UnicodeDecodeError,并保持读取和写回的编码契约。235 收藏 -
介绍 Python tarfile 的 extraction_filter、data_filter 和自定义过滤器,说明如何阻止危险路径、越界链接与不必要的归档元数据,并处理版本兼容和部分解包清理。232 收藏 -
排查 asyncio TaskGroup 失败时,区分 ExceptionGroup、兄弟任务取消和清理阻塞,使用 except* 分类处理,并正确传播 CancelledError。231 收藏 -
Python datetime 的 fold=0 和 fold=1 可以区分夏令时回拨产生的两次相同本地时间。本文说明 ZoneInfo 的用法,以及比较、存储和春季 gap 的处理边界。230 收藏 -
从大块数据跨进程复用的场景出发,讲清 Python multiprocessing.shared_memory 的缓冲区布局、名称附加、同步方式、close 与 unlink 责任,以及 resource tracker 边界。218 收藏