文字列

【Python】文字列が予約済み識別子か判定する方法 ~keyword.iskeyword~

【Python】文字列が予約済み識別子か判定する方法 _keyword.iskeyword_

Pythonでは、class, def, for, ifのように予約されている文字列があります。文字列が予約済みの文字列かどうか確認するための方法を解説します。

予約済み識別子か判定する ~keyword.iskeyword~

文字列は、isxxxxxという形のメソッドを使用することで文字の種類を判定することができます。

判定メソッドの中にはisidentifierというメソッドがありますが、このメソッドはPythonの識別子になるかどうかを判定することができるのみです。

文字列が予約済みの識別子(キーワード)かどうかを判定するためには、keywordモジュールのiskeywordを使用します。

iskeywordの使い方例は以下の通りです。

import keyword

id_str1 = 'python'
id_str2 = 'class'

print(f'{id_str1}の判定')
print(f'identifier: {id_str1.isidentifier()}')
print(f'iskeyword: {keyword.iskeyword(id_str1)}')
print(f'{id_str2}の判定')
print(f'identifier: {id_str2.isidentifier()}')
print(f'iskeyword: {keyword.iskeyword(id_str2)}')
【実行結果】
pythonの判定
identifier: True
iskeyword: False
classの判定
identifier: True
iskeyword: True

iskeywordを用いるにはkeywordモジュールをimportする必要があります。

この例では、'python'、'class'という文字列に対して、identifierとiskeywordでそれぞれ判定を行っています。

'python'という文字列は識別子にできるのでidentifierはTrueですが、予約語ではないためiskeywordはFalseになります。一方、'class'は予約語であるため、iskeywordもTrueとなります。

以上のようにkeyword.iskeywordで文字列が予約済み識別子か判定することができます。