-
目标目录已经存在时,Python 的 shutil.copytree 默认会抛出 FileExistsError。本文围绕 dirs_exist_ok=True 讲清目录合并、同名文件覆盖、copy2 元数据、ignore 过滤和异常边界,给出可重复使用的复制写法。
-
Python pathlib 复制符号链接可选择复制所指内容或重建链接。本文通过隔离示例说明 follow_symlinks、相对目标与对象类型判断,并给出旧版本和权限注意事项。
-
Python 3.12 起可以用 type 语句或 typing.TypeAliasType 显式声明可复用类型别名。本文从简单别名、泛型参数和运行时元数据出发,说明 TypeAliasType 与普通赋值、TypeAlias、NewType 的区别及版本边界。
-
Python 装饰器把函数包装成 *args、**kwargs 后,inspect.signature 默认会沿着 __wrapped__ 找回原函数签名。本文说明 functools.wraps、follow_wrapped=False 和显式 __signature__ 的关系,并给出用 Signature.parameters 与 bind 做参数适配的写法。
-
在 Python dataclass 中,使用 typing.ClassVar 标注类级配置后,dataclasses 会把它排除出字段集合和生成的初始化参数。本文用最小示例说明普通标注、ClassVar、fields()、asdict() 以及继承和可变配置的边界。
-
Python configparser 默认启用 BasicInterpolation,配置值中的单个百分号可能被当成插值语法。本文说明为什么要写成 %%、如何使用 %(name)s 引用配置、怎样用 raw=True 读取原文,以及什么时候应该关闭 interpolation。
-
asyncio.PriorityQueue 会按最低优先级先取数据,但相同优先级的任务如果直接携带字典或对象,可能出现顺序不稳定甚至比较异常。本文用 priority、sequence、payload 三元组固定同级任务顺序,并说明生产者、消费者、join、取消和容量边界。
-
需要在一个同步宿主里连续调用多个顶层异步入口时,可以用 asyncio.Runner 复用同一个事件循环和上下文。本文对比 asyncio.run 与 Runner 的生命周期、loop_factory、context 和关闭边界,给出按场景选型的方法。
-
嵌套 asyncio.TaskGroup 发生异常时,内层任务组会先整理自己的 ExceptionGroup,外层再处理收到的异常与取消信号。本文用一个最小结构解释传播边界、except* 分流方式、取消例外和日志防复发规则。
-
DatagramChannel 非阻塞接收需要正确处理 receive 的 null 返回。本文用有限时长示例说明 Selector 注册、读就绪提示与缓冲区状态,区分无包、空包和截断。
-
Java HttpClient WebSocket 的接收节奏由 request(n) 控制回调次数,而不是由 CompletionStage 自动限流。本文结合 WebSocket.Listener 说明 request、last、CompletionStage、关闭和异常处理的边界,并给出单次与有限批量申请的选择方法。
-
Java Flow 背压的关键不是让 Publisher 自己变慢,而是让 Subscriber 通过 Subscription.request(n) 明确可接收数量,Publisher 只在需求量大于零时调用 onNext。本文用一个单订阅示例说明请求、发送、取消、完成和错误边界。
-
Java 19 引入的 Future.resultNow 适合读取已经成功完成的 CompletableFuture,而且不会等待。本文从状态判断、批量汇总、异常与取消边界出发,比较 resultNow、getNow 与 join 的选择。
-
Java FFM API 的 MemorySegment 生命周期由关联作用域决定。本文比较四类 Arena,用独立示例说明切片与关闭后访问,并明确跨线程借用和释放责任。
-
Java 模式 switch 不会让 null 自动落入普通类型模式。本文用 case null 和 case null, default 说明空值分支、default 兜底及非法组合边界,并给出一组最小反向验证清单。