python教程技术文章
-
Python sqlite3 中回滚失效,常见原因不是 rollback() 写错,而是提交时机、异常捕获范围和连接边界没有对齐。本文用订单写入示例拆开事务生命周期、异常复现、上下文管理器和嵌套调用的验收方法。387 收藏 -
Python 3.14 为 argparse 增加 suggest_on_error,可在 choices 或子命令拼写错误时给出相近提示。本文用一个备份命令行工具演示如何开启、如何兼容 Python 3.13 及更早版本,以及为什么它不能替代参数语义校验。386 收藏 -
用 Python 3.12+ 的 sys.monitoring 追踪函数调用,讲清工具 ID、事件掩码、回调签名、DISABLE 优化与旧版本回退边界。386 收藏 -
asyncio.timeout 适合给一段包含多个 await 的工作设置总预算,asyncio.wait_for 适合限制单个 awaitable。本文比较两者的保护范围、取消对象、TimeoutError 捕获位置和清理延迟,给出异步请求中的选择示例。386 收藏 -
文章 · python教程 | 1个月前 | 并发 · 标准库 · 任务调度 · python · 序列化 concurrent.futures Python解释器池 InterpreterPool 异常边界
Python 3.14 的解释器池让多个解释器在同一进程内并行运行,但解释器之间不共享可变对象。本文用一个可核对的小实验说明 submit、pickle 序列化、initializer 和异常传播的边界,并给出何时选线程池、解释器池或进程池的判断方法。384 收藏 -
Python 3.12 为 pathlib.PurePath.relative_to 增加 walk_up 参数,可以生成带 .. 的相对路径,但它不会访问文件系统,也不能单独证明目标路径位于目录内。本文用 Path.resolve、relative_to 和 os.path.commonpath 拆开路径边界与符号链接风险。382 收藏 -
用 Python 线程池提交任务后,add_done_callback 适合做结果归档和状态收口,但不能替代 future.result() 的异常读取。本文拆开回调线程、取消状态、异常处理和 shutdown 时机,给出一套可复查的收尾写法。382 收藏 -
在 Tkinter 里,如果用循环批量创建 Frame,又在闭包里直接引用循环变量,结果往往会“跑偏”——所有事件绑定最后都会落到同一个 widget,也就是循环结束后的那个对象。更稳妥的处理方式,是通过事件对象里的 e.widget 在触发时动态拿到当前具体的控件,同时配合 bind(),而不是381 收藏 -
本文详解 Python 中静态方法被装饰器包装后,通过 self.method() 调用导致意外传入 self 的根本原因,并提供兼容 descriptor 协议的安全包装方案。 本文详解 Python 中静态方法被装饰器包装后,通过 `self.method()` 调用导致意外传入 `self`380 收藏 -
文章 · python教程 | 1个月前 | 并发 · 异常处理 · Python教程 · asyncio · Python asyncio CancelledError 结构化并发 TaskGroup gather ExceptionGroup
把 asyncio.gather 迁移到 TaskGroup,关键不是替换一个 API,而是重新确认失败传播、兄弟任务取消和 CancelledError 清理边界。本文用一个并发抓取示例说明最小迁移写法、ExceptionGroup 处理方式、兼容版本和回归检查。379 收藏 -
Python zoneinfo本身不携带时区数据库。本文说明系统TZPATH与tzdata回退顺序,给出精简容器和Windows的依赖配置、启动探测及异常处理方法。378 收藏 -
Python 3.12+ 优先用 autocommit 控制 sqlite3 事务;旧项目继续使用 isolation_level 时,要把隐式事务、显式 BEGIN、commit 和 rollback 的边界分清。378 收藏 -
Python 的 cache 与 lru_cache 不是同一种容量策略:前者等价于无限缓存,后者可用 maxsize 限制容量。本文用配置示例和 cache_info 排查命中率、键参数与失效边界。377 收藏 -
functools.cache 不会替你判断隐藏状态是否变化。递归函数要把完整输入放进缓存键,并用 cache_info 与 cache_clear 验证结果。377 收藏 -
支付对账中出现 0.01 元差异时,先排除二进制浮点输入,再用 Decimal.quantize 和 ROUND_HALF_UP 固定金额舍入规则。本文从复现、定位到回归验证给出一套可运行的 Python 排查方案。374 收藏