该提案建议为Python列表新增list.discard(x)方法:删除第一个等于x的元素,成功返回True,不存在则返回False,不抛异常。它复用remove()的查找与删除逻辑,语义与set.discard()对应,可替代“先判断再删除”或捕获ValueError的写法,避免重复扫描和线程竞争。collections.UserList同步支持;collections.abc.MutableSequence和deque暂不改动。
PEP 825 扩展规定变体属性的治理与兼容性判定:可通过变体元数据中的静态特性/特性值兼容列表,或查询需显式启用的插件(Python 包,也可由工具内置或重实现)来确定。插件默认不安装执行,需用户明确授权,工具可维护可信插件列表。另定义 ABI 依赖变体提供者,借助安装器依赖解析器判断针对不同依赖版本的构建兼容性。元数据新增 providers 键,格式版本升至 0.2.0。
PEP 827在2026年Python语言峰会上被讨论,提议为类型注解引入条件类型、推导类型和成员类型等原语,使返回类型可由输入参数推断,并自动生成CRUD模型类型。核心争议在于运行时如何存储类型注解:可选字符串格式、仅存字符串再eval,或使用__annotate__闭包,需权衡内存与速度。
本期Python潮流周刊聚焦:AI用11天完成费马大定理的机器可验证证明;Python拟新增export关键字(PEP 842/843);一个Key可调用3000个工具。内容还涉及UnboundLocalError作用域解析、Protocol与ABC接口设计、Django治理精简、PyLadiesCon遭灌入2249个假账号、MongoDB迁移及AI代码审查等。开源项目推荐包括wrapture、nonebot2、GLiNER2、autoclip、PixelRAG等12个。
该PEP提议为Python新增两个None感知访问运算符`?.`和`?[]`,用于安全遍历可能为None的嵌套对象,避免抛出AttributeError或TypeError。运算符先求值左侧,若为None则短路返回None,否则继续正常访问,从而简化可选属性的链式访问,替代繁琐的if判断和临时变量。PEP仅聚焦这两个运算符,不涉及`??`合并运算符。
该PEP提议为Python添加None合并运算符??和??=。??在左侧非None时返回左侧,否则返回右侧;??=仅在左侧为None时赋值。这能简化默认值处理,避免重复表达式,减少副作用风险。类似特性已存在于TypeScript、JavaScript、C#等语言。
该PEP提议扩展Python类型注解以支持任意表达式,新增AST注解格式,使注解函数返回AST和命名空间供运行时求值。同时新增typing.get_type_annotations等工具,弃用get_type_hints,以提升注解表达力,性能影响主要限于运行时求值用户。
CPython计划新增分代增量循环垃圾回收器,交替进行年轻代与老年代增量收集,仅扫描更可能产生垃圾的较老对象,以减少GC暂停时间和总耗时。旧分代回收器保留为选项。新方案将堆分为三代及多个空间,默认启用增量模式,可降低峰值内存与暂停时间。
本文为Python周刊快译,汇总近期Python动态:讨论信号处理中print安全性、WebRTC v2、电子墨水徽章、PEP 805并行Python、显式延迟导入、wrapture工具及Guido对GIL看法等新闻,并推荐个人理财、压缩网关、图表库等开源项目,末尾附大妈个人评论与周刊背景说明。
该PEP提议将type语句后的字符串字面量保存为类型别名的__doc__属性,并通过ast、pydoc和help()展示。解析器将其存入ast.TypeAlias新增的doc字段,ast.get_docstring()可读取。规则适用于各类作用域,仅限字符串常量,-OO优化会剥离。无需类型检查器调整,但需更新相关工具。
PEP 845 提议在 match 语句中允许以点号前缀的简单名称(如 `.author`)作为值模式,按正常名称解析规则查找并比较,而非捕获。这解决了匹配局部变量、全局变量和哨兵值时需用 guard 子句的麻烦,语法向后兼容,社区投票中 71% 支持点号方案。
本文是Python周刊摘要,涵盖新书《现代面向对象Python》、二分查找教程、Django异步更新、多个PEP提案(如冻结语法、JSON序列化)、Python 3.14.7等版本发布,以及配置管理、Celery任务队列、LLM提示词开发等文章,并附有相关项目与近期活动信息。
本PEP提议为Python简单仓库API的错误响应制定统一格式,采用RFC 9457“HTTP API问题详情”标准。目前该API仅定义成功响应,错误响应无标准,安装器只能显示HTTP状态码,缺乏上下文。新方案要求索引以Problem Details对象返回错误,并附Content-Type头,客户端据此渲染更丰富的错误信息,且向后兼容,风险极低。
该PEP提议新增内置函数public()和private(),作为装饰器或函数调用,用于在定义处声明模块的公共接口,并自动维护__all__列表,避免其与定义脱节。此设计基于atpublic包,旨在无需第三方依赖,提升模块可见性管理的便利性,不改变现有语义。
该PEP提议在Python中引入`from <module> export <name>`语句,用于简化库的公共API导出。它自动将导入的名称添加到`__all__`,避免手动同步导入列表和`__all__`的重复工作,并支持别名、通配符和惰性导出。此设计旨在解决大型库(如NumPy、pandas)中常见的导出冗余问题,同时保持向后兼容性。
该PEP提议在Python模块中引入`__export__`变量,用于限制模块外部对属性的访问和可见性。模块可定义`__export__`列表,未列出的名称在外部访问时引发ImportError,且`dir()`和通配符导入会相应调整。此机制旨在提升模块维护性,明确公共API边界,但非安全措施,可被绕过。
该PEP提议为Python引入冻结显示语法:`f{1,2,3}`生成frozenset,`f{'a':1}`生成frozendict。此语法保证不可变性,使编译器能优化常量折叠,提升性能,并促进不可变容器在并发场景中的使用。语法与现有集合和字典显示一致,新增AST节点和操作码,完全向后兼容。
类中的变量名解析存在长期不一致性,讨论了局部和全局命名空间的查找规则。局部变量未绑定时会引发NameError。Python 3.4后,类中的自由变量可解析为封闭作用域的绑定,但未绑定的局部变量仍查找全局命名空间。提出了改进方案,以提高一致性和可读性。
该PEP提议在pyvenv.cfg中添加一个python-version字段,以记录虚拟环境使用的Python解释器的主版本和次版本。此字段旨在避免因补丁版本更新而导致的问题,确保工具在处理虚拟环境时的稳定性。创建虚拟环境的工具必须写入此字段,读取现有版本信息则不被推荐。
该文章提出为Python C API新增PyFrozenSetWriter和PyFrozenDictWriter两个构建器接口,遵循PEP 782的PyBytesWriter设计,允许直接逐项构建不可变的frozenset和frozendict,避免中间可变对象。同时软弃用对frozenset调用PySet_Add(),推荐使用新接口,并计划迁移CPython内部代码。
完成下面两步后,将自动完成登录并继续当前操作。