python教程技术文章
-
Python dataclass 继承后常见的 non-default argument follows default argument,并不只是字段写错。用 KW_ONLY 拆开基类和子类的构造参数,再配合 fields 与 asdict 检查序列化边界。319 收藏 -
Python 的 pathlib.Path.walk() 适合把目录遍历结果直接交给 Path API 继续处理。本文从最小筛选写法出发,说明 top_down 剪枝、follow_symlinks 的风险、文件类型核对和 Python 版本兼容边界。319 收藏 -
文章 · python教程 | 1个月前 | 并发 · python · logging · 故障排查 · 优雅停机 日志丢失 QueueHandler 日志队列 Python QueueListener
Python 用 QueueHandler 把日志交给后台线程后,停机阶段不能只依赖进程退出。本文从日志资产、队列排空、监听器停止和异常收尾四个边界出发,给出一套可复查的优雅停机写法。316 收藏 -
Python 函数把列表直接写成默认参数时,默认值只在函数定义时创建一次,append 又会原地修改它,所以后续调用会看到上次的数据。本文用最小复现、参数生命周期和 None 哨兵写法,说明如何修复普通业务函数,以及什么时候共享对象可以作为有意的缓存。316 收藏 -
Python multiprocessing 中,Queue 适合传递任务和结果,Manager 适合共享少量状态。本文从序列化、代理调用、数据规模和进程回收四个边界给出选型方法与代码示例。316 收藏 -
文章 · python教程 | 1个月前 | 文件操作 · Python教程 · pathlib · 异常排查 · Python pathlib 文件迁移 跨文件系统 Path.rename EXDEV
Path.rename 在同一文件系统内很方便,但跨挂载点时可能收到 EXDEV。本文从异常现场入手,区分重命名与复制删除,给出保留元数据、避免半成品和可回滚的 Python 文件迁移写法。314 收藏 -
Python API 的返回值和异常是调用方契约的一部分。本文从预期不存在、无效输入、依赖失败和异常链保留四类场景出发,说明 None、内置异常和自定义异常该怎样取舍。313 收藏 -
介绍 Python array 类型码不匹配时的按元素转换方法,并说明浮点精度、溢出、非有限值和原始字节解释的边界。311 收藏 -
ExceptionGroup.split 会递归筛选嵌套异常,并返回匹配组与剩余组。本文给出按异常类型拆分、处理可恢复错误、重新抛出未知错误的紧凑写法。311 收藏 -
Python NamedTemporaryFile 默认在 close() 时删除文件;需要在 with 块内关闭后按文件名重新打开时,应使用 delete_on_close=False,并注意 Windows 的共享删除权限与退出清理边界。311 收藏 -
Python 3.14 新增的多解释器线程池能让多个独立解释器在同一进程中并行处理 CPU 密集任务,但它不共享可变对象。本文用一个可验收的小实验检查参数序列化、解释器隔离、异常回收和退出边界,帮助你判断它是否适合现有 Python 服务。308 收藏 -
文章 · python教程 | 1个月前 | 日志 · 性能优化 · Python教程 · Python 异步日志 QueueListener logging.QueueHandler queue.Full
Python 用 QueueHandler 把日志交给后台线程后,有限队列一旦满了就会触发 queue.Full。本文用可复现实验比较默认处理、显式丢弃和阻塞写入,给出压测指标与上线边界。308 收藏 -
Python SpooledTemporaryFile 可调用 rollover() 在未超过 max_size 时主动迁移到磁盘临时文件。本文用完整示例说明手动落盘、文件指针保持、fileno() 隐式触发和自动清理边界。307 收藏 -
Python 3.14 的 asyncio.eager_task_factory 可以让同步完成的协程绕过事件循环调度,但它会改变执行时机和任务顺序。本文用缓存命中与真实等待两类协程说明启用方式、性能验证和回归边界。306 收藏 -
QueueHandler 本身不会自动把日志变成安全的异步链路:如果它把记录送回监听同一队列的日志路径,就会出现递归、重复输出或队列持续增长。本文用最小示例拆开 QueueHandler、QueueListener 与 logger 层级的边界,给出可验证的安全配置。306 收藏