python教程技术文章
-
asyncio.gather 遇到子任务异常时,默认只把第一个异常交给调用方,其他任务可能仍在运行。本文用可复现实验说明 return_exceptions、Task.cancel 和 finally 清理之间的边界。210 收藏 -
Python 服务在并发升高后,日志格式化和磁盘写入容易挤占请求线程。本文用 QueueHandler 与 QueueListener 拆开日志生产和落盘,比较直接写文件、队列日志两种方案,给出可运行示例、压测口径与优雅退出处理。268 收藏 -
面对百万行 CSV,不要一上来就把文件整体读进内存。本文用同一份订单导出数据比较 csv 流式读取、pandas chunksize 和 SQLite 分批导入,给出按内存、清洗复杂度和后续查询需求选方案的可运行边界。330 收藏 -
文章 · python教程 | 2天前 | 并发 · python · 故障排查 · asyncio · 任务取消 · Python asyncio.create_task Python 任务取消 asyncio CancelledError Python 异步任务收尾
Python 异步接口超时后,后台任务仍在访问数据库或写文件,常见原因不是 cancel() 失效,而是任务没有被保存、取消没有被等待,或协程吞掉了 CancelledError。本文用一个可复现的 asyncio 故障现场拆开这条链路,并给出带超时、回收和日志核对的改法。490 收藏 -
Python 批量调用外部接口时,任务越多不一定越快。本文从订单补数任务的耗时基线出发,用 httpx 连接池、asyncio.Semaphore 和超时预算控制请求数量,并通过压测结果说明配置边界与排查方法。196 收藏 -
批量导出不能只生成一个 CSV 文件。本文用 Python 标准库实现任务文件夹、状态文件、原子写入、结果查询和过期清理,让下载结果可追踪且不会长期堆积。495 收藏 -
预约、提醒和活动排期里,用户输入的本地时间不能直接当 UTC 保存。本文用一个小型预约转换器说明 Python zoneinfo 的最小用法:保留时区键、把带时区时间转成 UTC,并在夏令时回拨造成的重复时间里明确记录 fold 选择。469 收藏 -
文章 · python教程 | 5天前 | 字符串 · 标准库 · 模板 · python · Python 3.14 · Template Python 3.14 t-string string.templatelib PEP 750
Python 3.14 的 t-string 仍使用花括号插值,但结果是可检查的 Template,而不是已经拼好的 str。掌握 strings、interpolations、conversion 与 format_spec 的边界,才能把它用于日志、HTML 或领域文本处理。121 收藏 -
Flask 表单保存后直接渲染页面,刷新浏览器往往会再次提交 POST。用 Post/Redirect/Get 把保存动作和展示页面拆开,再配合 flash 把一次性反馈交给下一次 GET,能让刷新、回退和提示消息各自落在正确边界。343 收藏 -
文章 · python教程 | 5天前 | 并发编程 · python · 多线程 · asyncio · 多进程 · queue.Queue Python并发 Python任务队列 asyncio.Queue multiprocessing.Queue
Python 里同样叫 Queue 的对象,其实服务于线程、协程和进程三种完全不同的边界。本文从任务在哪儿运行、满队列怎么背压、完成状态怎么收尾三个维度,比较 queue.Queue、asyncio.Queue 与 multiprocessing.Queue,并给出可直接核对的最小示例。165 收藏 -
文章 · python教程 | 5天前 | 命令行 · 异常处理 · Input · Python教程 · ValueError · 命令行交互 ValueError Python input int 输入校验 EOFError
Python 的 input 总会返回字符串,直接交给 int 转换时,空值、字母和终端输入结束都会让交互变得难用。文章从用户实际输入出发,给出循环校验、范围限制、退出命令和 EOFError 边界的最小实现,并附上核对清单。458 收藏 -
文章 · python教程 | 6天前 | 面向对象 · python · 后端开发 · dataclass · default_factory · Python Field 可变默认值 dataclass default_factory 列表字段
dataclass 里的 list、dict、set 不能直接当默认值:当前 Python 会把常见的不可哈希默认值拦成 ValueError。应使用 field(default_factory=list) 在每次创建实例时生成新列表;当默认值来自配置或需要延迟构造时,也要分清工厂函数、浅拷贝和 None 的语义。111 收藏