python教程技术文章
-
当函数参数来自字典或配置时,inspect.Signature.bind 可以在真正调用前完成参数绑定并把错误收敛为 TypeError。本文从一个小型回调分发器出发,演示 Signature.bind、BoundArguments 和 apply_defaults 的边界。393 收藏 -
文章 · python教程 | 3星期前 | 并发 · 标准库 · 配置管理 · python · 版本升级 · 环境变量 并发安全 os.environ Python 3.14 os.reload_environ
Python 3.14 新增 os.reload_environ(),可以把进程外修改过的环境变量重新同步到 os.environ 与 os.environb。本文用配置热刷新场景拆开缓存来源、os.putenv 差异、线程安全边界和兼容版本写法。428 收藏 -
Python csv.DictReader 读取列数不整齐的 CSV 时,多余字段会进入 restkey,缺失字段会得到 None。本文用一组可复现的小例子说明如何校验表头、识别异常行并保留可追踪信息。215 收藏 -
文章 · python教程 | 3星期前 | 异常处理 · 资源管理 · 异步编程 · Python教程 · Python 回滚 aclose contextlib.AsyncExitStack 异步资源
异步服务在初始化数据库连接、临时目录或会话资源时,只要中途一步失败,前面已经成功创建的资源就必须可靠释放。本文用 contextlib.AsyncExitStack 拆开 enter_async_context、push_async_callback 与 aclose 的调用链,说明逆序清理、部分初始化失败和重复关闭的边界。352 收藏 -
Python 3.12 之后 sqlite3 的事务控制增加了 Connection.autocommit。本文用一组可运行的小实验区分 False、True 与 LEGACY_TRANSACTION_CONTROL,说明 commit、rollback、close 的实际边界,并给出旧代码迁移检查清单。221 收藏 -
用 pathlib.Path.rglob 扫描项目文件时,如何跳过隐藏目录并保留需要的隐藏文件?本文从遍历结果、路径过滤和符号链接边界写出可验证的 Python 实现。181 收藏 -
当资源数量运行时才确定时,contextlib.ExitStack 可以把文件、锁和临时清理动作按进入顺序登记,并在退出时逆序回收。本文从一个批量读取小项目出发,说明 enter_context、callback 和异常路径的配合方式。441 收藏 -
文章 · python教程 | 3星期前 | python · utf-8 · pathlib · encoding 跨平台 UTF-8 locale Python pathlib.Path.read_text
Path.read_text() 省略 encoding 时会沿用文本打开的默认编码,读取 UTF-8 中文文件可能在不同环境表现不同。本文用 pathlib.Path、encoding="utf-8"、errors="strict" 和 PYTHONWARNDEFAULTENCODING 验证边界。212 收藏 -
Python 的 functools.lru_cache 会保护缓存结构,但不会保证同一个冷键只计算一次。本文用并发时序拆解命中、未命中、重复计算和参数规范化边界,并给出可验收的使用方式。168 收藏 -
用一个可运行的 asyncio 示例说明 TaskGroup 的异常传播、兄弟任务取消和部分结果保留方式,帮助 Python 服务避免并发任务失败后状态失控。446 收藏 -
金额计算最怕精度和舍入规则藏在全局状态里。本文用 Python decimal.Context 固定局部精度,拆开量化、异常陷阱和线程上下文的边界,并给出可回归的验收样例。168 收藏 -
asyncio.timeout_at 用事件循环时钟表达绝对截止时间,适合把多个异步步骤放进同一时间预算。本文从最小写法出发,说明 TimeoutError 的捕获位置、取消语义、嵌套超时和 wait_for 的边界。230 收藏 -
QueueHandler 本身不会自动把日志变成安全的异步链路:如果它把记录送回监听同一队列的日志路径,就会出现递归、重复输出或队列持续增长。本文用最小示例拆开 QueueHandler、QueueListener 与 logger 层级的边界,给出可验证的安全配置。306 收藏 -
文章 · python教程 | 3星期前 | 并发 · 消息队列 · 异步编程 · Python教程 · Python 消费者 超时 Queue asyncio 哨兵 asyncio.Queue task_done
asyncio.Queue 的任务处理结束,不等于消费者协程会自动结束。本文用固定数量哨兵、task_done()、gather() 和 wait_for() 组成可验证的优雅停机流程,说明有界队列、异常回收与超时检查的边界。151 收藏 -
dataclasses.InitVar 是只参与初始化、不保存为实例字段的伪字段。本文用配置参数注入和输入校验示例,说明它如何进入 __post_init__、为何不出现在 fields() 与 asdict() 中,以及序列化时应如何设计。147 收藏