Python の命名規約 - ネーミングルール
こんにちは、切口太郎です。
Python には、摩訶不思議な名前の付け方のルール(命名規約)があります。
そもそもPythonは、変数名やメソッド名は禁則文字以外は自由につけることができます。
_my_first_name
MyFirstName
myFistName
MY_FIRST_NAME
なんか統一感ないですねー!
みんな自由に名前をつけていると、複数人でコーディングした場合とてもソースが見にくくなります。
名前の付け方のルールはいろいろありますが、次の3種類がよく利用されています。
ルール
|
説明
|
例
|
スネークケース
|
アンダースコアーで単語間をつなぐ
|
my_first_name
|
キャメルケース
|
単語の区切りの先頭を大文字で記述する。
|
MyFirstName
|
チェーンケース
| 単語の区切りをハイフンでつなぐ |
my-first-name
|
スネークケースは、_aaa_aaa_aaa で蛇のように見えるからで、キャメルケースは、aaBbCcDd のようにラクダのコブのように見えるからということです。
チェーンケースは、ハイフンが真ん中なので、鎖のように見えるからということです。
(無理やり感がすごいですが・・・)
キャメルケースは、細かく2つに分類できます。
アッパーキャメルケース
|
文字の先頭が大文字
|
MyFirstName
|
ローワーキャメルケース
|
文字の先頭が小文字
|
myFirstName
|
名前の先頭が大文字か小文字かの違いです。
Java 言語では、このような規則になっています。
対象
| ルール |
例
|
変数名/メソッド名
|
ローワーキャメルケース
| myValue / myMethod |
クラス名
|
アッパーキャメルケース
|
MyClass
|
さて、Python はこのようになっています。
結構複雑です。
対象
|
ルール
|
例
|
パッケージ
|
全小文字 なるべく短くアンダースコア非推奨
|
tqdm, requests ...
|
モジュール
|
全小文字 なるべく短くアンダースコア非推奨
|
sys, os,...
|
クラス
|
最初大文字 + 大文字区切り
|
MyFavoriteClass
|
例外
|
最初大文字 + 大文字区切り
|
MyFuckingException
|
型変数
|
最初大文字 + 大文字区切り
|
MyFavoriteType
|
メソッド
|
最初小文字 + 大文字区切り
|
myFavoriteMethod
|
関数
|
全小文字 + アンダースコア区切り
|
my_favorite_funcion
|
変数
|
全小文字 + アンダースコア区切り
|
my_favorite_instance
|
定数
|
全大文字 + アンダースコア区切り
|
MY_FAVORITE_CONST
|
自クラス内でのみ使用する内部変数と内部メソッドはアンダースコアで開始します。
例)_self
正直、このような面倒なルールに沿わなくても文法エラーなどは出ないのですが、複数人でコーディングした時にはこういうルールは必要です。
他人のソース見た時に、自分と違うと明らかに見にくいですからね。
Python の場合、オフサイドルールとともに、このような命名ルールも同時に「体で覚えた」ほうが良いでしょう!
今日は面倒な命名規約についてでした。l
コメント
コメントを投稿