Python で予約語の一覧を取得する方法 ⇒ keyword を使う

Python コードの予約語よやくごの一覧は、標準の keyword モジュールで取得できました。

Python マニュアル

keyword — Python キーワードチェック

keyword.kwlist

keyword.iskeyword(s)

字句解析 – 行構造 – 識別子 (identifier) およびキーワード (keyword)

キーワード (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 モジュールを見つけました。

しかしながら、自分の用途に使う場合だと、ほかにもっと適したモジュールがあるような気がしますね。

『演算子の記号』とか『モジュール名』とかは、なにか別の方法で取得する必要がありますし。

スポンサーリンク
ブログ
シェアする(押すとSNS投稿用の『編集ページ』に移動します)
フォローする(RSSフィードに移動します)
スポンサーリンク
シラベルノート
タイトルとURLをコピーしました