Format attribute name with repr() when formatting AttributeError error message
未关闭
还没有人认领这个 Issue。
interpreter-core
stdlib
type-feature
- 主要语言
- Python
- 星标
- 77.2k
- 派生
- 35.9k
- PR 合并指标
- PR 指标待抓取
描述
Feature or enhancement
Some code paths format the attribute name with str() to format the AttributeError error message. Example:
>>> getattr(object(), "a'b")
AttributeError: 'object' object has no attribute 'a'b'
The quote character ' should be escaped in the error message ('a\'b'), or the attribute name should be quoted with " character ("a'b").
The expected error is:
AttributeError: 'object' object has no attribute "a'b"
I propose replacing str() with repr() to format the attribute name.
This issue is a follow-up of https://github.com/python/cpython/pull/153786#discussion_r3639448620 discussion (another AttributeError change).
Linked PRs
- gh-154614
- gh-157685
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 getattr(object(), "a'b") 示例开始,检查相关 PR 中讨论的 AttributeError 格式化路径。确认完成后的行为会对属性名进行转义或更改其引号方式,与 issue 中显示的预期错误消息一致。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- backend
- Issue 类型
- 功能
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100