Python コードの予約語の一覧は、標準の keyword モジュールで取得できました。
Python マニュアル
keyword — Python キーワードチェック
字句解析 – 行構造 – 識別子 (identifier) およびキーワード (keyword)
keyword
をインポートしてから、keyword.kwlist
を参照すると、リストが取得できました。
コード例
Python の予約語の一覧を表示するコード例です。
『文字列が予約語であるか?』の判定も試してみました。
import keyword
for (n, k) in enumerate(keyword.kwlist, start=1):
print(f'{n} - {k} - iskeyword: {keyword.iskeyword(k)}')
実行結果
Python 3.8.1 の結果ですが、予約語は 35 個ありました。
ところで、予約語の大文字と小文字は区別されていました。
keyword.iskeyword('None')
は True でしたが、keyword.iskeyword('none')
は False でした。また、keyword.iskeyword('NONE')
も False でした。
1 - False - iskeyword: True
2 - None - iskeyword: True
3 - True - iskeyword: True
4 - and - iskeyword: True
5 - as - iskeyword: True
6 - assert - iskeyword: True
7 - async - iskeyword: True
8 - await - iskeyword: True
9 - break - iskeyword: True
10 - class - iskeyword: True
11 - continue - iskeyword: True
12 - def - iskeyword: True
13 - del - iskeyword: True
14 - elif - iskeyword: True
15 - else - iskeyword: True
16 - except - iskeyword: True
17 - finally - iskeyword: True
18 - for - iskeyword: True
19 - from - iskeyword: True
20 - global - iskeyword: True
21 - if - iskeyword: True
22 - import - iskeyword: True
23 - in - iskeyword: True
24 - is - iskeyword: True
25 - lambda - iskeyword: True
26 - nonlocal - iskeyword: True
27 - not - iskeyword: True
28 - or - iskeyword: True
29 - pass - iskeyword: True
30 - raise - iskeyword: True
31 - return - iskeyword: True
32 - try - iskeyword: True
33 - while - iskeyword: True
34 - with - iskeyword: True
35 - yield - iskeyword: True
用途
予約語の一覧ですが、『Python コードで Python コードを書く』という試みをしていたときに、必要になって探しました。
『生成した Python コードが正しいかどうか?』のチェックに使う感じですね。
『もし予約語が含まれていたら文字列を修正する』とか、『Python の予約語を回避する』とか、そういった処理がしたくて予約語の一覧(キーワードの一覧)を探していました。
それで、keyword モジュールを見つけました。
しかしながら、自分の用途に使う場合だと、ほかにもっと適したモジュールがあるような気がしますね。
『演算子の記号』とか『モジュール名』とかは、なにか別の方法で取得する必要がありますし。