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

时间:2018-08-23 18:47:33

标签: python python-3.x keyword reserved-words redefinition

我遇到了一个问题,我必须对API设置要返回的所有内容进行json处理。当我编写一个装饰器并将其应用于每种方法时,我想到了一个想法:

  

“我是否可以只覆盖return关键字,以便它每次为我执行此操作?”

我进行了一些搜索,但是找不到关于该主题的任何内容。但是,由于“一切都是对象”,也许有可能吗?

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

您可以更改Python中保留字和关键字的行为吗?

1 个答案:

答案 0 :(得分:1)

,您无法在Python中重新定义保留字。它们的含义是… drumroll 保留,因此根据定义它不能更改。

我可以在官方文档中找到最接近这个事实的明确declaration的地方是《语言参考》(强调我的)的“词法分析”一章:

  

2.3.1。关键字

     

以下标识符用作保留字或语言的关键字, 不能用作普通标识符 。它们的拼写必须与此处完全相同:

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语句中将关键字分配给它们或用作函数名称,等等。

重要的是要理解,实际上是关键字的基本性质实际上阻止了对其含义的更改-分配等操作不起作用是该性质的结果,而不是其原因。