python教程技术文章
-
Python 3.14 的 pathlib.Path.copy() 可以复制文件或目录树。本文说明目标路径、符号链接跟随、preserve_metadata 元数据保留和跨平台边界,帮助你把本地复制写得清楚。306 收藏 -
dataclasses.replace 能创建同类型的新对象,却不会递归复制嵌套配置。本文用服务配置快照说明浅层替换、嵌套对象共享、fields 与 asdict 的边界,并给出可验证的更新流程。304 收藏 -
用一个可收尾的 Python 异步日志小项目讲清 QueueHandler、QueueListener、队列容量、prepare 与 stop 的配置和排查边界。303 收藏 -
文章 · python教程 | 3星期前 | 面向对象 · python · Python教程 · InitVar __post_init__ Python dataclass 派生字段 field(init=False)
Python dataclass 适合声明原始输入字段,再用 __post_init__ 在生成的 __init__ 完成后计算派生字段。本文从 field(init=False) 开始,说明 InitVar、继承、frozen、更新边界和 replace 的正确用法。303 收藏 -
JODI 数据库(jodidb.org)的 TableViewer 页面是典型的参数驱动型动态 ,直接访问基础 URL 会因缺少必要查询参数而无法加载内容;必须提供有效的 ReportId 才能成功加载目标报表。 JODI 数据库(jodidb.org)的 TableViewer 页面是典型的参数驱302 收藏 -
Python 用 subprocess 调用命令时,显式设置 encoding 和 text 可以直接得到正确中文;如果输出编码不稳定,则保留 bytes 后再用 errors 策略解码。301 收藏 -
文章 · python教程 | 1个月前 | 并发 · 日志 · Python教程 · Python Fork multiprocessing 多进程日志 spawn QueueHandler QueueListener
Python 多进程直接写终端或同一个文件时,日志容易互相交错。本文用 multiprocessing.Queue、QueueHandler 和 QueueListener 集中日志出口,并解释 spawn、fork、队列关闭与全局顺序的边界。300 收藏 -
Python httpx 的关键不是把 AsyncClient 写得更短,而是让同一个客户端覆盖合适的异步生命周期。本文从循环中新建客户端的常见问题出发,说明共享连接池、Limits 参数、并发任务和关闭时机。299 收藏 -
文章 · python教程 | 2星期前 | 超时控制 · 异步编程 · Python教程 · asyncio · CancelledError 异步超时 TimeoutError reschedule Python asyncio.timeout
用 Python asyncio.timeout 为异步操作建立结构化时限,讲清 CancelledError 到 TimeoutError 的转换边界、finally 清理,以及 reschedule 和 timeout_at 的动态期限用法。299 收藏 -
判断函数是否为 coroutine function,优先使用 inspect.iscoroutinefunction。本文区分 async def 函数、partial 包装、同步函数返回协程、async generator 与已经调用后的 coroutine 对象,避免把函数检查和结果检查混在一起。299 收藏 -
用 Python 标准库 MozillaCookieJar 把 Cookie 保存为 Mozilla cookies.txt 文件,并说明 save、load、会话 Cookie、过期 Cookie、覆盖写入和 urllib.request 接入时的边界。299 收藏 -
Python typing.Protocol 适合把第三方对象需要满足的最小接口写成结构化类型,不要求对方继承本地基类。本文用存储适配场景说明 Protocol、runtime_checkable 与真正行为测试各自能保证什么。298 收藏 -
讲清 Python enum.StrEnum 的显式值、auto()、.value、str()、JSON 序列化和旧版本兼容排查方法。298 收藏 -
介绍 Python argparse 中全局选项、子命令和位置参数的边界设计,用 add_subparsers 与 set_defaults 实现互不抢占的 CLI 解析。298 收藏 -
Python 装饰器把函数包装成 *args、**kwargs 后,inspect.signature 默认会沿着 __wrapped__ 找回原函数签名。本文说明 functools.wraps、follow_wrapped=False 和显式 __signature__ 的关系,并给出用 Signature.parameters 与 bind 做参数适配的写法。298 收藏