Python の Keywordについて

Python
WokandapixによるPixabayからの画像

このエントリ、下書きに残っていた物を更新したのですが、Built-in Functionまでまとめた下記エントリを以前書いていたので、こちらの方が役に立つ気が。。。
不要になった下書きはとっとと削除するか、必要な部分だけ残すのが吉。反省を込めて。
Keywordリストが増えているのでこのままとしておきます。(11/5夜追記)

Keywordとは

  • Pythonで特殊な意味を持たせた単語
  • Keywordに設定された単語は変数に使用出来ない。

Keyword一覧を呼び出すコマンド

>>> from keyword import kwlist
>>> kwlist

キーワードリスト一覧

>>> kwlist
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

これらの単語を変数名として使おうとしてもエラーが出る。

>>> for = 3
  File "<stdin>", line 1
    for = 3
        ^
SyntaxError: invalid syntax
>> True = 3
  File "<stdin>", line 1
    True = 3
    ^
SyntaxError: cannot assign to True

invalid syntaxと言う一般的なエラーメッセージの場合と、
cannot assign to Trueと「あ、Keywordを選んだから駄目なんだな」と分かるエラーメッセージの場合がある様だ。

何はともあれ、変数に代入しようとしてinvalid syntaxが出たらこれを疑ってみよう。

Keywordかどうかの確認

有る単語がKeywordかどうか確認するには、keyword.iskeyword()で確認できる。
確認したい文字はクオーテーション(シングルでもダブルでも)を前後に付ける必要がある。

>>> from keyword import iskeyword
>>> iskeyword("True")
True
>>> iskeyword("for")
True
>>> iskeyword(True)
False

コメント

タイトルとURLをコピーしました