是否可以重新定义 Python 中的关键字?

Is it possible to redefine keywords in Python?

我 运行 遇到一个问题,其中我必须将我的 API 设置为 return 的所有内容进行 jsonify。当我编写装饰器并将其应用于每个方法时,我想到了一个想法:

"Can't I just overwrite the return keyword so that it performs this operation for me every time?"

我进行了一些搜索,但找不到与该主题相关的任何内容。但是,既然"everything is an object",也许有可能?

显然覆盖 return 是个坏主意,但从更一般的意义上讲,我的问题是:

你能改变 Python 中保留字和关键字的行为吗?

,不能在Python中重新定义保留字。他们的意思是……drumroll……reserved,所以根据定义不能更改。

我能在官方文档中找到最接近明确 declaration 这个事实的是语言参考的词法分析章节(强调我的):

2.3.1. Keywords

The following identifiers are used as reserved words, or keywords of the language, and cannot be used as ordinary identifiers. They must be spelled exactly as written here:

False      await      else       import     pass
None       break      except     in         raise
True       class      finally    is         return
and        continue   for        lambda     try
as         def        from       nonlocal   while
assert     del        global     not        with
async      elif       if         or         yield

由于关键字不能用作普通标识符,它们不能被赋值,不能用作def语句中的函数名等

重要的是要理解关键字的基本性质实际上禁止更改它们的含义,但是 - 赋值等不起作用是这种性质的结果,而不是它的原因。