python教程技术文章
-
用 Python decimal.quantize 处理金额时,先用 Decimal 字符串和 0.01 量子固定小数位,再按业务规则选择 ROUND_HALF_EVEN、ROUND_HALF_UP 或方向性舍入,避免把截断、中点取偶数和远离零混为一谈。306 收藏 -
Python logging 出现重复日志,通常是子 logger 自带 handler 后又因 propagate=True 把同一记录交给 root handler。本文用检查代码和配置边界说明如何定位与修复。306 收藏 -
Python itertools.batched 的 strict=True 只要求最后一批也达到 n 个元素;本文用完整、尾批不足和空输入三个例子说明 ValueError 的边界,并给出整除校验与版本兼容写法。306 收藏 -
dataclasses.replace 能创建同类型的新对象,却不会递归复制嵌套配置。本文用服务配置快照说明浅层替换、嵌套对象共享、fields 与 asdict 的边界,并给出可验证的更新流程。304 收藏 -
用一个可收尾的 Python 异步日志小项目讲清 QueueHandler、QueueListener、队列容量、prepare 与 stop 的配置和排查边界。303 收藏 -
JODI 数据库(jodidb.org)的 TableViewer 页面是典型的参数驱动型动态 ,直接访问基础 URL 会因缺少必要查询参数而无法加载内容;必须提供有效的 ReportId 才能成功加载目标报表。 JODI 数据库(jodidb.org)的 TableViewer 页面是典型的参数驱302 收藏 -
Python 用 subprocess 调用命令时,显式设置 encoding 和 text 可以直接得到正确中文;如果输出编码不稳定,则保留 bytes 后再用 errors 策略解码。301 收藏 -
文章 · python教程 | 4星期前 | 并发 · 日志 · Python教程 · Python Fork multiprocessing 多进程日志 spawn QueueHandler QueueListener
Python 多进程直接写终端或同一个文件时,日志容易互相交错。本文用 multiprocessing.Queue、QueueHandler 和 QueueListener 集中日志出口,并解释 spawn、fork、队列关闭与全局顺序的边界。300 收藏 -
Python typing.Protocol 适合把第三方对象需要满足的最小接口写成结构化类型,不要求对方继承本地基类。本文用存储适配场景说明 Protocol、runtime_checkable 与真正行为测试各自能保证什么。298 收藏 -
讲清 Python enum.StrEnum 的显式值、auto()、.value、str()、JSON 序列化和旧版本兼容排查方法。298 收藏 -
介绍 Python argparse 中全局选项、子命令和位置参数的边界设计,用 add_subparsers 与 set_defaults 实现互不抢占的 CLI 解析。298 收藏 -
文章 · python教程 | 1个月前 | Python教程 · 运行时 · Python 静态类型 typing.Protocol runtime_checkable 结构化类型 isinstance
Python 的 Protocol 主要服务于静态类型检查,runtime_checkable 只把接口成员是否存在带到 isinstance;它不会验证参数、返回值或属性类型。本文用可运行示例拆开两条边界,并给出适合生产代码的检查方式。295 收藏 -
Python 3.14 为 zipfile 增加 Zstandard 写入支持。本文从压缩级别、旧版本兼容和解压验收三个角度,给出一套可复现的 ZIP_ZSTANDARD 使用方式。295 收藏 -
对比 Python typing.TypeGuard 与 TypeIs 在 True、False 分支中的类型收窄差异,解释 list 不变性边界,并给出静态检查验证方法。295 收藏 -
asyncio.to_thread 能让事件循环避开同步阻塞函数,但它不会把 CPU 密集型代码变成真正并行。文章用一个可运行实验拆开线程池容量、取消语义、异常传递和优雅停机边界,给出上线前的检查清单。291 收藏