2017-04-18 88 views
1

在此標記爲重複之前,讓我澄清。我不想定義一個新的關鍵字。我想將asyncawait放入關鍵字列表中,這樣它們將在IDLE中作爲關鍵字着色。如何將新關鍵字放入'關鍵字'模塊?

自從3.5版本,asyncio不需要爲了使用asyncawait(雖然也有極少數情況下,您將無法導入asyncio)需要進口,所以我想他們是有色的關鍵字。我無法忍受看到async def其中def是橙色的,但async是默認的黑色。

我通過colorizer.pyidlelib看了看,而你可以上色字符串前綴,並通過模塊本身(我已經這樣做了格式字符串)等等,但你不能只是通過編輯keywords插入新的關鍵字。當我打開該模塊時,我看到:

"""...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文件並運行它們?還是有另一種更簡單的方法?

+2

您可以自由更新自己安裝的文件。但是,下次從源代碼構建Python或重新安裝Python時,該文件將被破壞,並且手動添加將再次消失。 –

+2

通過獲得更好的IDE,您可能會更好地服務。 – user2357112

+1

這些指令只是爲了提醒開發人員在Python源代碼上如何手動重新生成該文件。 –

回答

4

您可以只更新該模塊動態

創建你在你的home目錄存儲與文件:

import keyword 

keyword.kwlist += ['async', 'await'] 
keyword.iskeyword = frozenset(keyword.kwlist).__contains__ 

然後設置IDLESTARTUP environment variable指向該文件。現在每次使用-s開關啓動IDLE時,您的keyword模塊將更新爲包含所需的「關鍵字」。如果您發現-s開關太麻煩了,你也可以將文件移動到$HOME/.Idle.py有它無條件地裝載,或將其移動到USER_SITE location運行它所有Python代碼;後者當然會承擔更多的風險。

頂部的警告提示您在從源代碼構建Python解釋器時生成該文件。如果您現在要在系統上編輯文件,則不必擔心文件被替換。但是,如果您曾經升級過Python,則很可能會遭到破壞,您必須再次進行更改。

注意的是Python 3.7,asyncawait是實際的關鍵字,這樣你就不會需要等待所有的長。同時,您可能需要選擇更好的IDE。我使用Sublime Text 3和Atom,兩者都支持MagicPython code highlighter,它已正確地突出顯示awaitasync

+0

IDLESTARTUP變量不管什麼原因都不會影響任何內容。我不得不去'site.USER_SITE'並把我的文件放在那裏。不過,我完全忘了你可以創建啓動文件,所以謝謝。 –

+1

@IsaacSaffold:啊,是的,因爲在命令行中使用'-s'時,IDLE只會查看該變量,請參閱鏈接的文檔。您也可以在主目錄中使用'.Idle.py'文件。 –