Python 如何在';关键词';单元

Python 如何在';关键词';单元,python,python-3.x,Python,Python 3.x,在这被标记为重复之前,让我澄清一下。我不想定义一个新的关键字。我想把async和await放在关键字列表中,这样它们就会在IDLE中被着色为关键字 从3.5版开始,使用async和wait不需要导入asyncio(虽然很少有不导入asyncio)的情况,所以我希望它们被着色为关键字。我无法忍受看到async-def其中def为橙色,而async为默认黑色 我查看了idlelib中的colorizer.py,虽然可以通过模块本身对字符串前缀等进行着色(我已经对格式字符串进行了此操作),但除了编辑关

在这被标记为重复之前,让我澄清一下。我不想定义一个新的关键字。我想把
async
await
放在关键字列表中,这样它们就会在IDLE中被着色为关键字

从3.5版开始,使用
async
wait
不需要导入
asyncio
(虽然很少有不导入
asyncio
)的情况,所以我希望它们被着色为关键字。我无法忍受看到
async-def
其中
def
为橙色,而
async
为默认黑色

我查看了
idlelib
中的
colorizer.py
,虽然可以通过模块本身对字符串前缀等进行着色(我已经对格式字符串进行了此操作),但除了编辑
关键字
外,不能插入新关键字。当我打开该模块时,我看到:

    """...This file is automatically generated; please don't muck it up!

    To update the symbols in this file, 'cd' to the top directory of
    the python source tree after building the interpreter and run:

        ./python Lib/keyword.py
    """

我真的不知道“构建口译员”是什么意思。有没有办法在安装过程中更改此过程,或者我必须编辑C文件并运行它们?或者还有其他更简单的方法吗?

您可以动态更新该模块

使用以下内容创建存储在homedirectory中的文件:

import keyword

keyword.kwlist += ['async', 'await']
keyword.iskeyword = frozenset(keyword.kwlist).__contains__
然后将设置为指向该文件。现在,每次使用
-s
开关启动IDLE时,您的
关键字
模块都会更新,以包含所需的“关键字”。如果您发现
-s
开关太麻烦,还可以将文件移动到
$HOME/.Idle.py
以无条件加载,或者将其移动到运行所有Python代码;当然,后者的风险更大

顶部的警告提醒您该文件是在从源代码构建Python解释器时生成的。如果您现在要在系统上编辑该文件,则不必担心该文件被替换。然而,如果您要升级Python,它可能会遭到破坏,您必须再次进行更改


注意,在Python3.7中,
async
await
将是实际的关键字,因此您不需要等待那么长时间。同时,您可能需要选择一个更好的IDE。我使用升华文本3和Atom,两者都支持,它已经正确地突出显示了
wait
async

您可以动态地更新该模块

使用以下内容创建存储在homedirectory中的文件:

import keyword

keyword.kwlist += ['async', 'await']
keyword.iskeyword = frozenset(keyword.kwlist).__contains__
然后将设置为指向该文件。现在,每次使用
-s
开关启动IDLE时,您的
关键字
模块都会更新,以包含所需的“关键字”。如果您发现
-s
开关太麻烦,还可以将文件移动到
$HOME/.Idle.py
以无条件加载,或者将其移动到运行所有Python代码;当然,后者的风险更大

顶部的警告提醒您该文件是在从源代码构建Python解释器时生成的。如果您现在要在系统上编辑该文件,则不必担心该文件被替换。然而,如果您要升级Python,它可能会遭到破坏,您必须再次进行更改


注意,在Python3.7中,
async
await
将是实际的关键字,因此您不需要等待那么长时间。同时,您可能需要选择一个更好的IDE。我使用Sublime Text 3和Atom,它们都支持,已经正确地突出显示了
await
async

您可以在自己的安装中自由更新文件。但是,下次从源代码构建Python或重新安装Python时,该文件将被删除,手动添加的内容将再次消失。获得更好的IDE可能会更好。这些说明只是提醒开发人员如何手动重新生成该文件。作为附录,请注意,在Python3.7中,这些将是关键字。您可以在自己的安装中自由更新该文件。但是,下次从源代码构建Python或重新安装Python时,该文件将被删除,手动添加的内容将再次消失。获得更好的IDE可能会更好。这些说明只是提醒开发人员如何手动重新生成该文件。作为附录,请注意,在Python3.7中,这些将是关键字。IDLESTARTUP变量不会因为任何原因影响任何内容。我不得不去
站点。USER\u站点
并把我的文件放在那里。不过,我还是完全忘记了您可以创建启动文件,所以谢谢您。@IsaacSaffold:啊,是的,因为IDLE只在您在命令行上使用
-s
时查看该变量,请参阅链接文档。您还可以使用主目录中的
.Idle.py
文件。IDLESTARTUP变量不会因任何原因影响任何内容。我不得不去
站点。USER\u站点
并把我的文件放在那里。不过,我还是完全忘记了您可以创建启动文件,所以谢谢您。@IsaacSaffold:啊,是的,因为IDLE只在您在命令行上使用
-s
时查看该变量,请参阅链接文档。您还可以使用主目录中的
.Idle.py
文件。