python / python/cpython

Assigning to a keyword generates unclear SyntaxError message

未关闭
#138,885 0 条评论 1 个 reaction 已指派 1 人 在 GitHub 查看

@StanFromIreland 已经在做这个了。

开始于 2025年9月14日。

interpreter-core topic-parser type-feature
主要语言
Python
星标
77.2k
派生
35.9k
PR 合并指标
PR 指标待抓取

描述

Feature or enhancement

Proposal:

When one attempts to assign to a keyword, one receives a SyntaxError with the unhelpful message invalid syntax:

>>> class = "Mammalia"
  File "<python-input-0>", line 1
    class = "Mammalia"
          ^
SyntaxError: invalid syntax

I propose changing this to something along the lines of (undecided on what the message should be, adding "reserved" makes it simpler for beginners IMO):

>>> class = "Mammalia"
  File "<python-input-0>", line 1
    class = "Mammalia"
    ^^^^^^^^^^^^^^^^^^
SyntaxError: cannot assign to reserved keyword 'class'

Note that this is already implemented for True, False and None:

>>> True = 1
  File "<python-input-0>", line 1
    True = 1
    ^^^^
SyntaxError: cannot assign to True

Adding this is a simple grammar change, I have a PR ready.
cc @sobolevn

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

Linked PRs
  • gh-138888

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。