Pythonの識別子は、ユーザが定義した名前です。
変数、関数、クラス、モジュールなどの名前を指定するために使用されます。
Python識別子を作成するためのルール
Python の識別子を作成するには、いくつかのルールに従わなければなりません。
- 予約されたキーワードを識別子名として使用することはできません。もし使おうとすると、SyntaxError がスローされます。
- Python の識別子には、小文字(a-z)、大文字(A-Z)、数字(0-9)、アンダースコア( _)を使用することができます。
- 識別子名は数字で始めることはできません。識別子名は数字で始めることはできません。例えば、10test は無効な識別子となります。
- Pythonの識別子には数字のみを含めることはできません。例えば、888は無効な識別子です。
- Pythonの識別子名はアンダースコアで始めることができます。例えば、888は無効な識別子です。
- 識別子名の長さに制限はありません。しかし、超長い識別子にはしないでください、プログラマーとしての信用を落とすだけです。
- Pythonの識別子名は大文字と小文字を区別します。ですから、”abc “と “ABC “は2つの異なる識別子です。プログラム間で統一するために、識別子には小さなケースを使うのがベストです。
Python有効な識別子の例
Pythonで有効な識別子の例を見てみましょう。
- ab10c: 英字と数字だけを含む。
- abc_DE: 全ての有効な文字を含む
- _: 意外ですが、アンダースコアは有効な識別子です。
- _abc: 識別子はアンダースコアで始めることができる。
Python の無効な識別子の例
- 99: 識別子は数字だけではありません。
- 9abc: 識別子は数字で始めることはできません。
- x+y: アンダースコアのような特殊文字のみ使用可
- for: 予約キーワード
How to Test if a String is a Valid Identifier?
文字列の isidentifier()
関数を使用して、識別子名が有効かどうかをチェックすることができます。
しかし、この方法では予約語は考慮されません。
そこで、この関数と keyword.iskeyword()
を併用することで、その名前が有効かどうかをチェックすることができます。
print ( "abc" .isidentifier()) # True
print ( "99a" .isidentifier()) # False
print ( "_" .isidentifier()) # True
print ( "for" .isidentifier()) # True - wrong output
|
for “が予約キーワードであることは分かっています。
ですから、これは有効な識別子ではありません。
識別子名が有効かどうかをテストする関数を定義してみましょう。
def is_valid_identifier(s):
return s.isidentifier() and not keyword.iskeyword(s)
print (is_valid_identifier( "for" )) # False
|
Python Identifier Naming Best Practices(Python識別子の命名のベストプラクティス
- クラス名は大文字で始めるべきです。例えば、
Person
,Employee
などです。 - クラス名が複数の単語を持つ場合、それぞれの単語の最初の文字を大文字にします。例えば、
EmployeeData
,StringUtils
, などです。 - 変数名、関数名、モジュール名には小文字を使用します。例えば、
collections
,foo()
, などです。 - 変数名、関数名、モジュール名に複数の単語がある場合は、アンダースコアで区切ります。例えば、
is_empty()
,employee_object
, などです。 - プライベート変数の場合は、名前をアンダースコアで始めることができます。
- 識別子名の最初と最後の文字にアンダースコアを使わないでください。これは Python の組み込み型に使用されます。
- 識別子の最初と最後にアンダースコアが2つある場合、その識別子は言語によって定義された特別な名前であることを意味します(例: _init_gucci_page )。そのため、識別子名の最初と最後にアンダースコアが2つあることは避ける必要があります。
- 識別子名は、その意図を明確にするために意味を持たせてください。例: phone_number、is_uppercaseなど。
- もし関数がブール値を返すなら、その名前は “is” で始めた方がよいでしょう。例えば、
isidentifier
,iskeyword
, など。 - 識別子名の長さに制限はありません。しかし、小さく、要点を押さえてください。例えば、the ter_employee_object_first_name は emp_first_name と名付けるとよい。
概要
Pythonにおける識別子は、ユーザー定義の名前です。
Pythonのプログラムの中で実体を定義するために使用されます。
識別子の用途を示唆するために、適切な名前を使うべきです。
シンプルで意味のあるものにする “というルールに従いましょう。
What’s Next?
- Pythonステートメント
- Pythonのデータ型
- Pythonの関数
- Pythonのパッケージ
- Pythonのループ