python教程技术文章
-
从最小 dataclass(slots=True) 写法出发,说明固定字段布局、动态属性限制、继承重复字段、weakref_slot 与 fields() 的边界,给出迁移和验收清单。118 收藏 -
讲清 Python http.client 中 HTTPResponse 与 HTTPConnection 的关闭责任,给出完整读取、with 语句、异常收口和连接复用的实用模板。116 收藏 -
argparse 默认解析器遇到多个位置参数和选项交错时,参数归属容易让人误判。本文用 parse_intermixed_args 对比普通 parse_args,说明它的工作边界、子解析器限制和互斥组兼容性。114 收藏 -
用 dataclasses.field(default_factory=...) 为每个实例创建独立的列表、字典或集合默认值,避免可变对象共享并保留类型提示。114 收藏 -
Python 的 zipfile.Path 适合在不解压的情况下浏览 ZIP 目录和读取文件,但它不会替调用者清理归档内的路径。本文用目录判断、文件读取和安全落盘三个场景,拆开 Path 的使用边界、路径遍历校验与 ZipFile.extractall 的差异。113 收藏 -
用 packaging.SpecifierSet.is_unsatisfiable 在依赖解析前识别确定无解的版本范围,同时说明预发布版本、通配符和完整解析器之间的边界。112 收藏 -
dataclass 里的 list、dict、set 不能直接当默认值:当前 Python 会把常见的不可哈希默认值拦成 ValueError。应使用 field(default_factory=list) 在每次创建实例时生成新列表;当默认值来自配置或需要延迟构造时,也要分清工厂函数、浅拷贝和 None 的语义。111 收藏 -
Python subprocess 超时不会自动终止子进程。本文按 POSIX 与 Windows 分开说明进程组建立、超时后的树级终止、管道回收和验证边界,给出可改造的 Popen 清理示例。108 收藏 -
csv.DictReader 遇到重复表头会发生字典键覆盖。本文用 csv.reader 按位置保留原始列,再生成唯一字段名,并说明 restkey、restval 的适用边界。107 收藏 -
Python multiprocessing 使用 spawn 时,子进程会重新导入主模块。本文用入口保护、统一 context、Queue 传递和日志边界解决重复导入与重复输出问题。107 收藏 -
使用 csv.DictReader 的 restkey 和 restval 明确处理 CSV 的额外列与缺失列,再结合必填校验和空字符串判断,避免导入数据把结构异常静默吞掉。105 收藏 -
TypeIs 和 TypeGuard 都能让类型检查器理解自定义谓词,但它们对 True、False 分支以及不变容器的处理并不相同。用可运行示例拆开选择边界。104 收藏 -
Python tomllib 会把 TOML 日期时间字面量直接转换成 datetime、date 或 time。本文说明四类映射、时区差异、引号陷阱,以及业务校验和 JSON 导出时的正确处理方式。104 收藏 -
Python 的 eager_task_factory 会让协程在任务创建阶段先运行,遇到阻塞才回到事件循环。本文用同步完成、真实等待和同步异常三条路径说明迁移验收与兼容边界。103 收藏 -
文章 · python教程 | 1个月前 | python · pathlib · 版本升级 · 文件系统 · 符号链接 Python 3.14 pathlib.Path.copy Path.move 文件树迁移
Python 3.14 为 pathlib.Path 增加 copy()、copy_into()、move() 和 move_into(),可以把文件树迁移逻辑收回 Path API。本文用备份目录迁移场景核对覆盖、符号链接、元数据和跨文件系统边界,并给出旧版本兼容方案。102 收藏