python教程技术文章
-
Python 服务在并发升高后,日志格式化和磁盘写入容易挤占请求线程。本文用 QueueHandler 与 QueueListener 拆开日志生产和落盘,比较直接写文件、队列日志两种方案,给出可运行示例、压测口径与优雅退出处理。268 收藏 -
Python sqlite3 多线程报错通常不是 SQL 写错,而是一个 Connection 被创建它的线程之外复用。本文给出每线程独立连接和共享连接加锁两种改法,并说明提交与回滚边界。264 收藏 -
Python dataclass 可以用 InitVar 接收只在构造阶段使用的配置或环境参数,再通过 __post_init__ 生成真正字段。本文同时说明 default_factory、frozen=True 和字段顺序的边界。264 收藏 -
Python dataclass 不能直接把列表作为默认值。本文解释 default_factory 的创建时机、实例隔离、显式传参和自定义工厂写法,并整理可变字段的排查清单。261 收藏 -
本文详解 Django 中表单提交后目标视图未被调用的典型原因,聚焦 URL 配置错误、模板 action 属性误配及调试方法,帮助开发者快速定位并修复表单路由失效问题。 本文详解 Django 中表单提交后目标视图未被调用的典型原因,聚焦 URL 配置错误、模板 action 属性误配及调试方法,257 收藏 -
AsyncExitStack 适合在运行时决定要打开哪些异步资源,并按后进先出顺序统一清理。本文用连接池、临时目录和异常回归说明 enter_async_context、push_async_callback 与退出顺序。257 收藏 -
讲清 Python dataclass 的 frozen=True 为什么仍能保存可变缓存,并用 default_factory、init=False、compare=False 和 hash=False 设计按实例隔离的内部缓存。256 收藏 -
在 Python 字典中,dict[key] : value 并非赋值语法,而是合法但无运行时效果的类型注解表达式,常被误认为是字典更新操作;真正赋值必须使用 =,而冒号在此上下文中属于 PEP 484 类型提示语法的一部分。 在 Python 字典中,`dict[key] : value` 并非赋252 收藏 -
Python 用 zipfile 解压上传文件时,BadZipFile 往往来自错误的文件头、未完整写入或扩展名伪装。本文从 is_zipfile 与 ZipFile 验证开始,再处理成员路径和安全解压边界。246 收藏 -
用同一段 Python 3.10+ 示例检查 itertools.pairwise 的惰性迭代、首项边界和异常时间数据,给出可回归验证的相邻事件间隔写法。245 收藏 -
pathlib 的 Path.glob 和 glob.glob 对点号开头文件的处理规则不同。本文用原创示例说明如何匹配隐藏文件、递归扫描,以及按需排除隐藏目录。244 收藏 -
本文用日志清理工具做例子,演示 Python argparse 如何解析参数、校验类型、设计子命令,并把配置文件和环境变量合并成最终运行参数。241 收藏 -
Python 3.15 的 PEP 798 让列表、集合、字典推导式和生成器支持 *、** 解包。本文用等价循环解释展开、去重、键覆盖、惰性求值和变量作用域边界,并给出兼容旧版本的落地写法。241 收藏 -
Python 3.13 已将 typing.AnyStr 标记为弃用,官方建议改用新的类型参数语法。本文用字符串与字节串函数拆解迁移写法、运行版本和静态检查门禁。238 收藏 -
Python 3.13 新增的 copy.replace() 适合给 dataclass、namedtuple 和自定义 __replace__ 对象生成字段变体。本文用订单配置场景说明它与 copy.copy、deepcopy、dataclasses.replace 的边界,并给出兼容检查和测试方法。237 收藏