python教程技术文章
-
Python 的 typing.Protocol 主要服务静态结构化类型检查;即使加上 @runtime_checkable,isinstance() 也只适合确认属性是否存在,不会验证方法签名、参数类型、返回类型和业务行为。本文用代码拆开两种检查的边界,并给出运行时补强方案。254 收藏 -
Python sqlite3 的 named parameter 使用字典绑定命名占位符。本文说明 :name 的写法、execute 与 executemany 的传参方式、缺少键和 NULL 条件的处理,以及为什么不要拼接 SQL 值。254 收藏 -
在 Python 字典中,dict[key] : value 并非赋值语法,而是合法但无运行时效果的类型注解表达式,常被误认为是字典更新操作;真正赋值必须使用 =,而冒号在此上下文中属于 PEP 484 类型提示语法的一部分。 在 Python 字典中,`dict[key] : value` 并非赋252 收藏 -
Python dataclasses.field 通过 default_factory 为实例创建独立默认容器。文章说明零参数工厂、嵌套对象与显式传参的共享边界,并解释不可哈希默认值、init=False 和 frozen 的适用规则。250 收藏 -
Python 用 zipfile 解压上传文件时,BadZipFile 往往来自错误的文件头、未完整写入或扩展名伪装。本文从 is_zipfile 与 ZipFile 验证开始,再处理成员路径和安全解压边界。246 收藏 -
用 Python typing.Protocol 为鸭子类型定义最小接口,约束方法、属性与泛型签名,并说明 runtime_checkable 的检查边界。246 收藏 -
文章 · python教程 | 4星期前 | 并发 · 异常处理 · python · asyncio · CancelledError 结构化并发 ExceptionGroup Python asyncio TaskGroup asyncio gather
asyncio.TaskGroup 能在首个非取消异常出现时取消同组剩余任务,并在退出前等待全部任务收尾。本文给出最小写法、异常组处理和旧版本兼容方案。246 收藏 -
用同一段 Python 3.10+ 示例检查 itertools.pairwise 的惰性迭代、首项边界和异常时间数据,给出可回归验证的相邻事件间隔写法。245 收藏 -
Python 3.13 起可用 copy.replace 为数据类、命名元组和自定义不可变对象生成字段变更副本。本文用一个小项目讲清统一写法、协议接入与浅层共享边界。245 收藏 -
pathlib 的 Path.glob 和 glob.glob 对点号开头文件的处理规则不同。本文用原创示例说明如何匹配隐藏文件、递归扫描,以及按需排除隐藏目录。244 收藏 -
用 importlib.resources.files 读取包内模板,说明 Traversable、as_file、压缩包资源和打包配置之间的边界。244 收藏 -
文章 · python教程 | 1个月前 | 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 wave.Wave_read 读取 WAV 文件的声道数和采样宽度,区分字节与位深,并掌握 getparams、每帧字节数和 wave.Error 的处理边界。243 收藏 -
Python 的 asyncio.TaskGroup 没有原生 terminate 方法。本文按官方方案演示如何加入一个抛出专用异常的任务,让其余成员协作取消,并用 except* 精确处理终止信号。242 收藏 -
Python contextlib.ContextDecorator 让同一个上下文管理器同时支持 with 和函数装饰器。本文说明重复调用、__enter__ 返回值、__exit__ 异常传播和显式 with 的选择边界。242 收藏