python教程技术文章
-
Python 资源数量不固定时,用 contextlib.ExitStack 统一登记上下文管理器和 cleanup 回调,按后进先出顺序完成关闭,并用 pop_all 交接清理责任。333 收藏 -
Path.read_text 的 encoding=None 会把编码决定交给文本 I/O 默认规则,跨系统或容器时可能出现乱码和 UnicodeDecodeError。本文说明如何显式指定编码、保留 strict 错误证据,并区分编码与 newline 参数。220 收藏 -
Python shelve 删除键后文件不一定变小,因为底层 dbm 会保留空闲区供后续写入复用。本文说明怎样在独占维护窗口中调用 Shelf.reorganize() 回收空间,并处理后端能力、磁盘余量和旧版本边界。394 收藏 -
Python 3.15 增加私有方法的 pickle 支持,但恢复仍依赖模块、类定义与可序列化的实例状态。本文用私有绑定方法往返示例说明排查层次,并给出长期任务保存显式参数的设计取舍。225 收藏 -
Python 3.12 的 type 语句会创建 TypeAliasType。本文从普通赋值的歧义出发,说明如何声明类型别名、读取运行时元数据,并区分别名与 NewType 的边界。380 收藏 -
Python dataclasses 处理列表、字典等可变字段时,应使用 field(default_factory=...) 为每个实例创建独立对象。本文从共享状态问题出发,说明工厂调用时机、显式传参和常见配置错误。136 收藏 -
Python asyncio 中可以用 Semaphore 限制同时进入一次 IO 操作的任务数。本文从任务创建、信号量上下文、超时取消和并发粒度说明怎样控制请求排队,避免把并发上限误写成任务总数。335 收藏 -
Python 浮点数比较不要只写 a == b。本文用 math.isclose 拆解 rel_tol 与 abs_tol 的作用,说明不同数量级数据如何选择容差,并补充零、NaN 和无穷大的边界。278 收藏 -
Python 3.15 pathlib mkdir 新增 parent_mode,可指定新建中间目录的请求权限。本文通过临时目录示例区分末级 mode、中间层权限和 umask,并说明已有目录与旧版 Python 的边界。330 收藏 -
Python sqlite3 使用 file URI、mode=ro 和 uri=True 打开已经存在的 SQLite 文件,避免缺失文件被隐式创建,并区分连接失败与写入拒绝。159 收藏 -
讲清 Python functools.singledispatch 如何依据第一个参数类型选择函数,覆盖默认 object 实现、register 注册、dispatch 查询、registry 注册表,以及 Mapping 和 bool 的类型边界。417 收藏 -
Python ExitStack 适合资源数量由输入决定、或某些资源可选的场景。本文用文件、普通清理回调和 pop_all 说明如何动态注册资源、按逆序收尾,并在需要时转移关闭责任。371 收藏 -
说明 Python subprocess.run 默认不会因非零退出码自动抛异常,重点讲清 check=True、CalledProcessError、捕获标准错误,以及启动失败与命令失败的区别。394 收藏 -
文章 · python教程 | 2星期前 | 缓存 · 垃圾回收 · python · 内存管理 · Python 内存缓存 对象生命周期 weakref.WeakValueDictionary 弱引用缓存
用一个对象缓存场景说明 Python WeakValueDictionary 如何不单独延长对象生命周期,覆盖最小写法、弱引用支持、缓存命中和回收边界,以及它与普通字典缓存的取舍。185 收藏 -
介绍 Python tomllib.loads 解析内存 TOML 字符串的方法,说明返回类型、嵌套字段、浮点数处理和 TOMLDecodeError 错误边界。318 收藏