python教程技术文章
-
先判断异常发生在任务函数、结果获取、序列化还是 worker 生命周期,再选择捕获、修复或重建进程池。319 收藏 -
用 ContextVar 保存请求级上下文,再由 logging.Filter 统一注入 request_id,兼顾线程与 asyncio 场景。377 收藏 -
Python csv 处理带换行字段时,关键不是手动替换换行符,而是用 newline='' 打开文件并让 CSV 引号规则保留字段边界。本文分别说明读取、写入、DictReader 和异常处理的正确边界。365 收藏 -
说明如何用同目录临时文件与Path.replace提交完整文件,给出关闭句柄、同步内容和异常清理示例,并区分权限继承、并发覆盖、回滚及断电持久化边界。188 收藏 -
本文从 TypeGuard 的 True 分支收窄、逐项检查、TypeIs 选择和可变列表别名风险四个角度,整理 Python 用户自定义类型判断的实用处理方式。212 收藏 -
Python dataclass 处理 list、dict 等可变字段时,不能把共享对象直接当默认值;应使用 field(default_factory=...) 让每个实例按需创建独立容器。本文说明调用边界、常见错误和继承场景。488 收藏 -
文章 · python教程 | 1星期前 | 异步编程 · Python教程 · asyncio · Python 清理 asyncio CancelledError TaskGroup Task.cancel
Python asyncio 任务取消时,CancelledError 会在下一个可挂起点进入协程。本文用 try/finally 组织资源清理,说明 gather、TaskGroup、timeout 的收尾边界,以及为什么通常要重新抛出取消异常。410 收藏 -
Python dataclass 不只看注解写了什么名字,还要判断它最终是否能解析为 typing.ClassVar。本文用直接导入、公共模块重新导出和字符串注解三个最小场景,说明 ClassVar 为什么不进入字段集合,以及如何用 fields() 和签名快速定位异常。333 收藏 -
Python 3.15 可通过 profiling.sampling 启动任务或附加进程采集热点。本文说明 CPU 与墙钟口径、有限采集窗口、权限条件、采样成本和报告解读边界。340 收藏 -
Python 的 csv.Sniffer 只能根据样本文本做启发式判断。本文用受限候选分隔符、足够样本、csv.Error 兜底和 reader 结果检查,降低小样本误判带来的导入问题。389 收藏 -
Python 3.15 调整了 typing.IO 与 BinaryIO 抽象方法的参数签名,使其与真实文件对象的仅位置参数约定一致。本文解释斜杠的含义、错误调用的迁移方式,以及它对运行时、类型检查和多版本兼容代码的实际影响。346 收藏 -
文章 · python教程 | 1星期前 | 环境变量 · python · asyncio · 排错 · 异常处理 Python 3.15 asyncio REPL PYTHONSTARTUP 启动脚本
Python 3.15 的 asyncio REPL 会在适用的 PyREPL 场景执行 PYTHONSTARTUP。本文按启动入口、隔离参数和异常现场三个维度,说明如何让启动脚本异常可读、可定位,并保留交互式诊断环境。264 收藏 -
Python 3.15 的 sys._jit 把 JIT 的可用、启用和当前活动状态分开提供。本文用一段兼容读取代码解释 is_active 的准确含义、构建与 PYTHON_JIT 的影响,以及为什么它只适合测试和调试 JIT。338 收藏 -
Python logging 记录异常时,logger.exception 会以 ERROR 级别保留当前 traceback;本文进一步区分 exc_info 与 stack_info,并说明如何用 extra 补充请求上下文。421 收藏 -
Python dataclasses 默认会把字段纳入自动生成的比较方法。本文用 field(compare=False) 排除辅助字段,并说明它对 __eq__、order=True 排序、字段职责和哈希设计的影响。341 收藏