python教程技术文章
-
比较 Python Path.replace 与 rename 的覆盖语义,解释相对路径、跨文件系统、Windows 文件占用及异常处理,并给出不先删目标的替换示例和迁移清单。415 收藏 -
Python 的 Popen.communicate 超时后,不能只捕获异常就结束。本文从输出管道、TimeoutExpired、kill 与再次 communicate 四个环节说明如何终止子进程、回收句柄,并保留已经产生的 stdout 和 stderr。457 收藏 -
Python tomllib.load() 接收可读的二进制文件对象,tomllib.loads() 接收字符串。本文围绕文件、bytes 和 str 三种输入边界,说明 TOML 配置的正确读取方式、UTF-8 解码和异常处理。202 收藏 -
Python contextvars 可以用 copy_context() 复制当前上下文,再用 Context.run() 让回调在副本中读取和修改 ContextVar。本文说明上下文隔离、外层恢复、空 Context、重复进入和异常传播等边界。143 收藏 -
使用请求级 LoggerAdapter 为 Python 日志附加上下文,解释 extra、字段缺失、merge_extra 版本边界和默认值的区别,并给出避免请求串号的示例。364 收藏 -
用 Python sqlite3.Connection.backup 将正在访问的 SQLite 数据库复制到独立目标连接,掌握分页、进度回调、锁竞争和资源关闭的实用写法。355 收藏 -
Python enum.Flag 适合表达可多选的权限、能力和功能开关。本文从基础标记定义开始,说明按位或组合、按位与判断、in 成员检查、零值与输入转换边界,并给出可维护的权限检查写法。167 收藏 -
Python sqlite3 可以通过 Connection.getlimit() 查询当前连接的 SQLITE_LIMIT_SQL_LENGTH,区分 SQL 文本长度与数据大小,并结合 setlimit() 的旧值语义完成超长 SQL 排查。323 收藏 -
用 ParamSpec 和 Callable[P, R] 为装饰器转发原函数参数与返回值类型;当装饰器注入固定参数时,再用 Concatenate 表达新的调用签名。309 收藏 -
Python asyncio 处理同步阻塞函数时,可以用 asyncio.to_thread 把 I/O 工作放到线程执行;但取消等待任务不等于强制停止线程。本文比较 to_thread 与 run_in_executor,说明 contextvars、异常和协作式取消边界。395 收藏 -
Python asyncio.timeout_at() 接收事件循环时钟上的绝对 deadline,适合把一次请求的总截止时间传给多个嵌套协程。本文对比 timeout、timeout_at 和 wait_for,说明异常捕获、剩余预算、动态 reschedule 与过期边界。256 收藏 -
Python SharedMemory 中,close 只关闭当前实例持有的句柄,unlink 才是删除共享内存块;创建者、连接者和最后责任方要按不同角色安排清理,独立进程还要留意 track 的资源跟踪边界。319 收藏 -
文章 · python教程 | 2星期前 | 线程池 · 异常处理 · 并发编程 · Python教程 · Python threadpoolexecutor future add_done_callback 线程任务结果
Python concurrent.futures 的 Future 可以通过 add_done_callback 注册完成回调。本文用线程池批量任务说明如何区分成功、取消和异常,如何把完成结果安全投递到汇总容器,以及为什么不能把回调触发顺序当成任务提交顺序。400 收藏 -
Python functools.partial 可以预先绑定函数的一部分位置参数或关键字参数,返回一个更适合传给排序、映射和事件回调的可调用对象。本文用格式化与排序场景说明它保存什么、怎样调用,以及何时应该改用闭包或具名函数。373 收藏 -
Python pathlib 将源文件、目标目录和文件名分开组织,配合 shutil.copy2 完成复制;本文说明3.14新增接口、重名覆盖与异常传播,明确跨平台路径和元数据的限制。342 收藏